我在使用phonegap文件API时遇到问题。在我的应用程序中,我使用以下代码将图像从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文件插件最近已经更新,因此有时需要采用不同的方法,但我仍然卡住了,似乎无法找到解决方案。
希望有人可以帮助我。 提前谢谢,
马
答案 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.
中阅读有关该插件的更多信息