Приложение 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)
Кроме того, никаких ошибок никогда не выводится.