Android 2.3에서 mp3를 재생하는 응용 프로그램을 실행하는 데 문제가 있습니다. 이 mp3는 원격 서버에서 /data/data/com.my.package.name/으로 다운로드되며 기본 파일 사용 권한은 -rw -------입니다.Android - API 8에서 chmod를 실행하는 방법은 무엇입니까?
내 테스트에 따르면 HONEYCOMB 장치와 달리 미디어 플레이어는 파일 권한이 -rw-rw-rw-가 아닌 경우 mp3를 읽지 않습니다.
필자가 adb 셸을 사용하여 파일 권한을 666으로 설정하면 미디어 플레이어가 성공적으로 읽었음을 분명히 확인했습니다.
그래서, 그물에 일부 연구 후, 난 그냥 파일 기입 한 후, 다음과 같은 코드를 구현하려고:이 코드는 단편에서 실행하지만 난 그 아무것도 변경 생각하지 않는다
String chmodString = "chmod 666 " + getActivity().getApplicationContext().getFilesDir().getParentFile().getPath() +"/" + fileName;
Process sh = Runtime.getRuntime().exec("su", null, new File("/system/bin/"));
OutputStream osChgPerms = sh.getOutputStream();
try {
osChgPerms.write((chmodString).getBytes("ASCII"));
osChgPerms.flush();
osChgPerms.close();
sh.waitFor();
} catch (InterruptedException e) {
Log.d("2ndGuide", "InterruptedException." + e);
} catch(IOException e) {
Log.d("2ndGuide", "IO Exception." + e);
}
을 . 이 코드는 유용 아니다 포스트 벌집 장치에 작동하는 경우
불행하게도,
osChgPerms.write((chmodString).getBytes("ASCII"));
내가 정말 필요 IOException: broken pipe on Android 2.3
를 발생시킵니다.
실제로 문제가 chmod에서 발생하는지 또는 실행하는 방법에서 오는 것인지 실제로 알지 못합니다.
파일 권한을 변경하지 않고 HONEYCOMB에서 작동하는 미디어 플레이어를 작동시키는 데 필요한 모든 해결책은 무엇입니까?
없습니다. File 클래스의 setReadable (true, false)를 사용하십시오. –
@ChrisStratton Android API 9+ –
예 Chris, 맞습니다. "su"는 필요하지 않지만 Jared는 setReadable()을 사용할 수 없습니다. – AlainBo