Приложение Android не может читать файлы внешнего хранилища
Я создаю приложение только для личного использования ... тогда это не так важно, уважайте свое время: P
Я хочу сделать приложение, которое читает из базы данных и воспроизводит звуки. Я уже создал базу данных и могу воспроизводить звук из папки res / raw. Тем не менее, есть тысячи файлов для воспроизведения, и некоторые новые будут частью приложения, а другие будут удалены в будущем. Итак, добавление простого файла заставляет меня загружать все приложение (~ 1 ГБ) каждый раз (или, возможно, я ошибаюсь?). Вместо этого я подумал о чтении файла Excel и проигрывании звуков с SD-карты. Но я не могу ... насколько я знаю:
Приложениям не разрешается записывать (удалять, изменять ...) во внешнее хранилище, кроме как в свои специфичные для пакета каталоги.
Я положил файлы в/ Хранение / эмулировать / 0 / Android / данные / my_package_folder / файлы папка. Я прочитал действительно много тем, и ничто не помогло мне.
Environment.MEDIA_MOUNTED.equals(extStorageState) //returns true
Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState) //returns false
Я попробовал несколько способов создания нового файлового объекта или воспроизведения звука с помощью медиаплеера (как я уже говорил, проблем с воспроизведением файлов res / raw нет), ноФайл существует всегда возвращает false или звук не воспроизводится:
String filePath = getExternalFilesDir(null) + "/myfile.mp3"; //returns correct file path
File file = new File(filePath);
ИЛИ ЖЕ
File file = new File(getExternalFilesDir(null).getPath(), "myfile.mp3");
ИЛИ ЖЕ
MediaPlayer mp;
mp = MediaPlayer.create(this, Uri.parse(getExternalFilesDir(null).getPath() + "/myfile.mp3"));
Для minSdkVersion установлено значение 19, поэтому мне не нужна эта строка в Manifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Я включил эту строку, и ничего не изменилось:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
Я также пытался сделать это с другими расширениями файлов. Кроме того, решение отВот не помогло Мой телефон - Samsung Galaxy Grand Prime (SM-G530FZ), Android v. 5.0.2. Помогите, пожалуйста! :)