Запрос разрешения на сохранение в съёмном хранилище Android Java

81
27 ноября 2021, 08:40

Я хочу сделать возможность записи файлов на съёмный носитель. Дело в том, что при попытки записи на него показывает ошибку open failed: EACCES (Permission denied), хотя в Манифесте реализованы разрешения

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

А в коде тоже есть запросы на разрешения

    if (Build.VERSION.SDK_INT >= 23) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 2);
    }

И поэтому я думаю, что для получения доступа для записи на съёмный носитель нужно как-то реализовать это:

Но как я не знаю. Заранее спасибо за помощь

Answer 1

Если посмотреть на историю вопроса (вопроса к доступу в внешнему носителю), то история очень древняя и обильно политая кровью и потом нескольких поколений девелоперов, километрами обсуждений, миллиардами нейронов убитых в бесчисленных холиварах...

Часть дискуссий можно посмотреть например здесь и здесь или просто погуглив.

По сухому остатку сейчас картина мира выглядит так:

То что вы хотите сделать, а именно писать в любой каталог флешки - как нетрудно заметить из указанной таблицы, не подпадает ни под одну категорию - следовательно запрещено.

Вы можете писать только строго в каталог, который возвращается методом getExternalFilesDir() или getExternalCacheDir() - все остальное хакинг, рутинг и фрикинг.

Пруфлинк на документацию

READ ALSO
Что не так с Spring Security

Что не так с Spring Security

Когда отправляю POST-запрос через postman на /oauth/token я вношу параметры username, password, grant_type=password (application/x-www-form-urlencoded) Мне приходит ответ:

190
Найти все омоглифы символа

Найти все омоглифы символа

Доброго времени суток

119
Занести цифры числа в массив

Занести цифры числа в массив

Я хочу занести цифры числа в массив, но на деле мой цикл не делает этогоОн вносит максимум 4 цифры

198
Парсинг XML через регулярные выражения

Парсинг XML через регулярные выражения

Интересует документация/книги в которых освещается вопрос парсинга XML с помощью регулярных выражений

156