#android #android-6.0-marshmallow #android-context #android-sdcard
#Android #android-6.0-marshmallow #android-контекст #android-sdcard
Вопрос:
Когда приложение запущено на переднем плане, вставьте SD-карту и попытайтесь восстановить путь с помощью
ctx.getExternalFilesDirs(Environment.DIRECTORY_DOWNLOADS);
где контекст — это когда-либо контекст приложения и активности
При использовании контекста активности получите обновленный путь к SD-карте, но при использовании контекста приложения не получайте обновленный путь
Это происходит только в API 23 и 24
Обходным путем является завершение работы приложения и повторный запуск приложения
Кто-нибудь знает, это ошибка Marshmallow?
Примечание: я вижу, что некоторые создали проблему в выпуске 214247 Google
Комментарии:
1. Итак, вы выполняете горячую замену?
Ответ №1:
используйте Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
вместе с Environment.getExternalStorageState()
Тип DIRECTORY_DOWNLOAD не указан в качестве допустимого параметра для getExternalFilesDir(), пожалуйста, проверьте документацию: https://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.Строка)
Комментарии:
1. Спасибо за ответ, но я попытался использовать упомянутый вами вариант, но
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
он возвращает только основной путь к хранилищу,getExternalStoragePublicDirectory: /storage/emulated/0
а не путь к SD-карте