Это мой пример кода:
Код: Выделить всё
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION, Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivityForResult(intent,0);
Код: Выделить всё
AndroidRuntime: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION dat=package:io.github.anenasa.news.debug }
Примечание. Я также пробовал некоторые альтернативы:
- Storage Access Framework: это первый метод, который я придумал, но SAF не поддерживается на Android TV.
- MediaStore: частично работает, но мне нужно переименовать расширение из .txt к типам мультимедиа, таким как .mp4, поскольку он предназначен для доступа к медиафайлам, но не к текстовым файлам.
- Отключение хранилища с ограниченной областью: измените targetSdkVersion на 29 и установите requestLegacyExternalStorage="true". Единственный работающий метод, который я нашел на данный момент.
- getExternalFilesDir(): файл, который я хочу прочитать, создан пользователем, и он не может поместить файл во внешнее хранилище для конкретного приложения, начиная с Android 11.
Подробнее здесь: https://stackoverflow.com/questions/752 ... android-tv
Мобильная версия