Я немного рассержен из-за всей путаницы с точкой монтирования externalStorage
/sdcard
и необходимыми мне различными разрешениями. Я имею в виду только внешнюю физическую карту sdCard , смонтированную в /storage/XXXX-XXXX/
, а не "externalStorage", обычно монтируемую в /sdcard/
.
Я уже прочитал много тем, включая это полное руководство (хотя оно может быть немного устаревшим).
В нем четко говорится, что:
Дополнительные тома немного изменяют права на запись; они есть
глобально читаемый под тем же разрешением, которое описано выше.
Каталоги за пределами собственной управляемой области приложения (т.е.
/ Android / data / [PACKAGE_NAME]) вообще не доступны для записи
применение.
Я хорошо осведомлен о том, как писать в "частный" каталог моих приложений в ie.
/storage/5060-5A88/Android/data/my.apps.namespace/
.
То, что я прочитал, это то, что не можно написать новый файл, скажем:
/storage/5060-5A88/Pics4All
.
Однако я скачал 2 «приложения File Explorer» (Google Files, CxFileExplorer) и проверил оттуда мою внешнюю SdCard. Как только я захотел что-то написать (например, папку или скопировать файл), эти приложения попросили меня подтвердить:
Предоставить AppName доступ к вашим данным, включая фотографии и видео, на Имя sdCard .
После предоставления я могу создавать папки, перемещать файлы и т. Д. Без необходимости взаимодействия с пользователем при выборе файлов или им подобных. Также есть специальная вкладка в Настройки-> Приложение-> Хранилище с надписью
«Внешнее хранилище» 1 ед.
и кнопка «Очистить доступ» под ним.
Итак, мой вопрос: как эти приложения Explorer получили права на запись в произвольных местах на моей sdCard? Какой API они используют, я мог пропустить?