科尔多瓦-Access SDCARD

时间:2020-04-02 01:19:46

标签: android cordova cordova-plugin-file

有人知道是否可以通过Cordova访问SDCARD。我目前正在开发一个Music Player应用,并且尝试了3天,无法访问设备中sdcard上存储的某些mp3。

我正在使用cordova-plugin-file并立即看到'cordova.file.externalRootDirectory'返回'file:/// storage / emulated / 0 /'(本地安装的文件系统?),不是cordova-plugin-file文档中预期的外部sdcard文件系统?

要发现已安装的sdcard,我正在使用“ cordova-diagnostic-plugin”,该插件将sd卡的安装点返回为“ file:/// storage / 492E-BE06”。这也报告文件系统可写,但是尝试时无法写入或读取。

我已将以下两行添加到AndroidManifest.xml文件

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我正在运行时请求写权限

            function requestExternalSdPermission(done){
            cordova.plugins.diagnostic.requestRuntimePermission(function(status){
                switch(status){
                    case cordova.plugins.diagnostic.permissionStatus.GRANTED:
                        console.log("Permission granted");

                        break;
                    case cordova.plugins.diagnostic.permissionStatus.DENIED:
                        console.log("Permission denied");

                        break;
                    case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS:
                        console.log("Permission permanently denied");

                        break;
                }
            }, function(error){
                console.error("The following error occurred: "+error);

            }, cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE);
        }

并且我已将以下内容添加到config.xml

<preference name="AndroidPersistentFileLocation" value="Compatibility" />
    <preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,assets" />

这显然是一个权限问题,但我已经完全没有想法了。读取和写入内部文件系统正在按预期方式工作。我不知道怎么回事?甚至可以通过Cordova还是有局限性?

0 个答案:

没有答案