Приложение Cordova не может найти съемное хранилище (только на некоторых устройствах)

На некоторых устройствах 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)

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

0 ответов

Другие вопросы по тегам