window.requestFileSystem(LocalFileSystem.PERSISTENT,onFileSystemSuccess,fail);
访问文件系统.
在我的华硕平板电脑中,它没有外部SD卡(我没有插入任何可移动设备)所以我认为文件系统根指向内部SD卡.但是,在我的HTC Desire HD中,数据被写入外部SD卡. (因为数据只是驻留在microSD卡中.)
那真相是什么?我在W3C文档中看不到任何线索,也许我想念一些东西……
PS:Android版本都是ICS(冰淇淋三明治).
解决方法
为了了解PhoneGap如何处理持久存储,我不得不深入研究Cordova源代码. This file here contains the methods used by the PhoneGap FileAPI.相关的代码块从第871行开始.基本上,API将调用Environment.getExternalStorageState().如果这返回Environment.MEDIA_MOUNTED,意味着存储removable or non-removable SD card,则API返回的FileSystem是已安装存储的根目录,使用Environment.getExternalStorageDirectory().这解释了您在具有内部和外部SD卡的设备之间看到的行为差异,两者都被系统视为已安装的外部存储.如果您遇到没有任何外部存储的设备,即!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED),返回的FileSystem的根将在internal storage中为“data / data / packageName”,类似于调用Context.getFilesDir( ),通常返回类似“data / data / packageName / files”的内容.