使用cordova和文件插件强制Android上的外部SD卡

使用cordova和文件插件强制Android上的外部SD卡,第1张

概述在一个cordova Android应用程序(滚动到底部的设备,版本,插件列表,所有这些都是最新的写作)我想优先存储外部SD卡上的文件,并使用内部存储,如果SDCard不存在.我将保存路径设置为: persistentFS = cordova.file.externalDataDirectory || cordova.file.DataDirectory || fileSystem.root.to 在一个cordova Android应用程序(滚动到底部的设备,版本,插件列表,所有这些都是最新的写作)我想优先存储外部SD卡上的文件,并使用内部存储,如果SDCard不存在.我将保存路径设置为:

persistentFS = cordova.file.externalDataDirectory || cordova.file.DataDirectory || fileSystem.root.toURL();

它的最终值是file:///storage/emulated/0/AndroID/data/com.fubar.app/files/,与cordova.file.externalDataDirectory相同.

我已经设定:

< access origin =“cdvfile:// *”/>

< preference name =“AndroIDPersistentfileLocation”value =“Compatibility”/>
< preference name =“AndroIDExtrafilesystems”value =“files-external,sdcard,files,documents,cache,cache-external,root”/>

在config.xml中,

    < uses-permission androID:name =“androID.permission.WRITE_EXTERNAL_STORAGE”/>

在AndroIDManifest.xml中并在index.HTML中设置各种附魔
安全Metatag.我补充说,插入了SD卡,支持写入和I
确认我可以用 – 例如 – 文件管理器写入它.它
包含AndroID / data / com.fubar.myapp / files /文件夹,应该如此.

一切都是:文件被写入 – 并从内部设备存储读取.我已经阅读了关于这个主题的所有谷歌,但没有任何东西让我更接近任务(一些人建议使用文件系统根插件,但它似乎已被文件插件包含).

任何提示?
TIA,
阿尔夫

编辑:使用adb shell,我可以看到应用程序的外部sdcard文件文件夹的绝对路径为:

`/storage/extSdCard/AndroID/data/com.fubar.myapp/files`

并调用resolveLocalfileSystemURL

文件:///storage/extSdCard/AndroID/data/com.fubar.myapp/files

愉快地成功.我不认为这是要走的路,因为该路径取决于设备.

设备:Samsung galaxy tab 10.5,lollipop 5.0.1使用cordova 5.3.1,带插件:
 cordova-plugin-device 1.0.1“设备”
 cordova-plugin-dialogs 1.1.1“通知”
 cordova-plugin-file 3.0.0“文件”
 cordova-plugin-file-transfer 1.3.0“文件传输”
 cordova-plugin-media 1.0.1“媒体”
 cordova-plugin-whiteList 1.1.0“白名单”

构建主机是linux FC21

解决方法 您可以调用Context.getExternalfilesDirs().这将返回一个应用程序可以写入数据的目录数组.其中一个是sdcard路径/ storage / sdcardname / AndroID / data / appname / files.

大多数制造商还设置SECONDARY_STORAGE环境变量以公开SD卡根路径.您可以尝试调用System.getenv(“SECONDARY_STORAGE”)

AndroID不会公开任何允许您获取SD卡根路径的API.您可以使用反射并从StorageManager.java获取SD卡根路径 – > getVolumePaths() – http://androidxref.com/5.1.1_r6/xref/frameworks/base/core/java/android/os/storage/StorageManager.java#590

总结

以上是内存溢出为你收集整理的使用cordova和文件插件强制Android上的外部SD卡全部内容,希望文章能够帮你解决使用cordova和文件插件强制Android上的外部SD卡所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存