Я тщетно пытался использовать файл, который я положил в папку загрузок по умолчанию на моем устройстве Android Studio AVD.
Моему приложению необходимо использовать установочный файл в папке «Загрузки» при первом запуске и правильно настроить инструмент.
Я знаю, что должен добавить разрешения в Манифест, и я сделал.
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
И я проверил все файлы src & des или dir с помощью File.exists()
и все там.Но я просто не могу скопировать файл в разделе «Загрузки» в хранилище моего приложения (getFilesDir()
) или распаковать в него ..
Я получаю путь к загрузке с помощью
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
Но, похоже,путь по-прежнему на внутреннем NVM.В AVD есть эмулированная внешняя SDCARD, но папок там еще нет.Я начинаю задумываться, а не считается ли папка «Загрузки» AVD внутренней, так что разрешение <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
для «внешнего хранилища» на это не влияет ??
Если это так ... что я могу сделать, чтобы это исправить?Или это ошибка AVD?
PS Путь к каталогу загрузок показывает:
/storage/emulated/0/Download/
Некоторые обновления с момента публикации в прошлом месяце:
Вот что я знаю до сих пор.
Версия API, кажется, имеет значение.Выше проблема была запущена Oreo (API 26)Я только что попробовал это на KitKat (API 19), и файл был найден в
/storage/sdcard/Download/
Oreo просматривал
/storage/emulated/0/Download/
, и он продолжал возвращать «Отказано в доступе».Но у KitKat, похоже, нет проблем с открытием файла в каталоге Downloads.
Но я все еще очень озадачен этим.У кого-нибудь есть больше понимания?