Приложение Cordova не может найти съемное хранилище (только на некоторых устройствах) - PullRequest
0 голосов
/ 11 мая 2019

На некоторых устройствах Android мое приложение не может видеть съемные устройства (например, карты micro-sd или флэш-накопители USB через адаптер OTG).

Вот очень простой фрагмент кода, который я использую:

cordova.plugins.diagnostic.requestExternalStorageAuthorization(function(){
    cordova.plugins.diagnostic.getExternalStorageAuthorizationStatus(console.log, console.error);
    cordova.plugins.diagnostic.getExternalSdCardDetails(console.log, console.error);
}, console.error);

На большинстве устройств (где это работает, включая Samsung Note 9 на Android 9 и Note 3 на Android 5)выводит GRANTED и массив со списком сменных устройств, включая карту MicroSD и мою флешку, которую я подключаю с помощью адаптера OTG.

Однако на некоторых устройствах (в основном на Android 9, включая Pixel 3, Pixel 2, Mi MIX 3, HTC U11, Samsung S9 +) выводится значение GRANTED, но также пустой массив.Приложение не обнаруживает ни одной флешки.Таким образом, все они могут получить доступ к данным на этом флэш-накопителе с помощью файлового менеджера с того же устройства.

У меня есть разрешение android.permission.READ_EXTERNAL_STORAGE в моем AndroidManifest.xml, и я подтвердил, что оно также предоставляется с использованием cordova.plugins.diagnostic.getPermissionAuthorizationStatus(console.log, console.error, cordova.plugins.diagnostic.permission.READ_EXTERNAL_STORAGE)

Кроме того, ошибки не выводятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...