当存在SD卡时,Phonegap文件系统会保存到内部存储

时间:2014-06-09 21:06:37

标签: android cordova phonegap-plugins

我在使用phonegap文件AP​​I时遇到问题。在我的应用程序中,我使用以下代码将图像从LocalStorage保存到Android设备。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { // If the folder does not exist create it fileSys.root.getDirectory( myFolderApp, { create:true, exclusive: false }, function(directory) { entry.moveTo(directory, newFileName, successMove, resOnError); }, resOnError); }

变量myFolderApp包含需要创建的foldername。问题是即使Android平板电脑插入了SD卡,应用程序也会不断创建目录(以后保存数据)到内部存储器而不是外部SD卡。

localFileSystem.PERSISTENT当一个可用时,应该切换到SD卡吗? 当我记录directory.toURL()时,它说的是“cdvfile / localhost / persistent / mydirectory”

本机Android相机应用程序将其图像保存到SD卡,这意味着SD卡正常工作。

我现在很失落。经过几个小时的googeling我知道cordova文件插件最近已经更新,因此有时需要采用不同的方法,但我仍然卡住了,似乎无法找到解决方案。

希望有人可以帮助我。 提前谢谢,

2 个答案:

答案 0 :(得分:0)

尝试更改config.xml

<preference name="AndroidPersistentFileLocation" value="Internal" />

<preference name="AndroidPersistentFileLocation" value="Compatibility" />

请参阅以下讨论:

https://groups.google.com/forum/#!msg/phonegap/5UeZOBAz_DM/YlaGFJVCpv4J

答案 1 :(得分:0)

我们需要修改AndroidManifest.xml文件,但是我们不会手动执行。这不是一个好习惯,因为每次构建项目时,您的更改都将丢失。

相反,我们将使用cordova-custom-config插件,它允许您从config.xml文件中修改AndroidManifest.xml文件而不会出现问题。要安装插件,请在命令行中执行以下命令:

cordova plugin add cordova-custom-config
# Or phonegap
phonegap plugin add cordova-custom-config

幸运的是,要启用此功能,您只需要在AndroidManifest.xml文件中添加一个属性。使用cordova-custom-config插件,允许您在cordova应用程序的config.xml文件中使用自定义配置块,您需要在标记内的config.xml文件中添加以下行:

<platform name="android">
   <!-- Modify the android-manifest block and add the new property android:installLocation with value auto !-->
   <preference name="android-manifest/@android:installLocation" value="auto" />
</platform>

详细了解一步一步here.

在官方存储库here.

中阅读有关该插件的更多信息