я пишу файл во внутренней памяти:Мое приложение может создать файл, но не может читать его
byte[] data = ... // (A buffer containing wav data)
String filename = context.getFilesDir().getAbsolutePath() + "/newout.wav";
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.close();
Тогда я пытаюсь играть:
MediaPlayer player = new MediaPlayer();
player.setDataSource(filename);
player.prepare();
player.setLooping(false);
player.start();
Но prepare()
терпит неудачу:
java.io.IOException: Prepare failed.: status=0x1
Я проверил файл и увидел, что это разрешение -rw-------
. Я изменил его на -rw-r--r--
, после чего он успешно играл.
Так как же мое приложение может написать файл, но не может его прочитать? И как я могу сделать FileOutputStream
для установки прав доступа?
У вас есть это разрешение: в AndroidManifest.xml? –
Я думаю, что вы пишете файл во внутренней памяти, пожалуйста, проверьте путь –
Он находится во внутренней памяти: '/ data/data/xx.xxx.xxx/files/newout.wav' – Mousa