Я использую разрешение времени выполнения WRITE_EXTERNAL_STORAGE. Однако приложение, похоже, работает нормально, даже когда я не упомянул <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> в моем файле манифеста.

Вопрос: Каковы последствия добавления / отказа от добавления разрешений времени выполнения в манифесте и общие передовые практики в отношении разрешений.

0
Siddharth Kamaria 2 Сен 2020 в 17:13

2 ответа

Лучший ответ

Вы, вероятно, столкнулись с тем, что разрешение WRITE_EXTERNAL_STORAGE практически устарело, начиная с Android 10. Это часть принудительного применения Google Scoped Storage:

https://developer.android.com/preview/privacy/storage

Вы должны объявить разрешения времени выполнения в AndroidManifest. Попробуйте то же самое с другим опасным разрешением и посмотрите, будет ли оно действовать таким же образом.

1
Gavin Wright 2 Сен 2020 в 14:36

Начиная с Android 4.4 (API 19), нет необходимости запрашивать разрешение WRITE_EXTERNAL_STORAGE, когда ваше приложение хочет записать свои собственные каталоги для конкретного приложения во внешнем хранилище (предоставляемом методом getExternalFilesDir ()). Однако, чтобы ваше приложение было совместимо с уровнями <= 18, вам понадобится тег uses-permission.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />

-1
Dharman 2 Сен 2020 в 14:37