Подтвердить что ты не робот

Как приложение может получить доступ к файлам на USB-хранилищах OTG в Android 6.0 (API-уровень 23) без root?

Предварительный просмотр разработчика Android 6.0 (API-уровень 23) может самостоятельно монтировать внешние съемные USB-хранилища OTG без каких-либо дополнительных приложений (для получения дополнительной информации см. https://goo.gl/0UvsyN).

Когда пользователь подключается к хранилищу USB OTG, он отображается в меню системного хранилища и доступен со встроенным файловым менеджером. Пользователь может получить доступ ко всем файлам внешнего хранилища USB OTG, используя новый встроенный файловый менеджер без прав root.

Когда я подключаю свой USB-накопитель OTG к своему устройству Android, он устанавливается в /storage/A03E-1DF5, а также в /mnt/media_rw/A03E-1DF5, но для доступа к этой папке требуются права root.

Я работаю над приложением для Android-плееров.

Возможно ли и как получить доступ к файлам на USB-хранилищах OTG на Android 6.0 в моем приложении, например, в встроенном файловом менеджере без прав root?

P.S. Я уже использую функции checkSelfPermission и requestPermissions в своем приложении, и мое приложение уже имеет android.permission.READ_EXTERNAL_STORAGE и android.permission.WRITE_EXTERNAL_STORAGE (дополнительную информацию см. В разделе https://goo.gl/i83BN2.), но похоже, что эти разрешения затрагивают только внутренние хранилища (MicroSD), а для USB OTG такого гранулированного разрешения нет.

4b9b3361

Ответ 1

В Android 6, в соответствии с поддержкой USB-носителей, Storage Access Framework является единственным доступным меканизмом:

В Android 6.0 любое устройство, которое не принято, считается переносным. [& hellip;] Приложения сторонних разработчиков должны пройти через Storage Access Framework для взаимодействия с файлами на переносном хранилище; прямой доступ явно заблокирован для обеспечения конфиденциальности и безопасности.