微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html5 – LocalFileSystem.PERSISTENT指向哪里?

在PhoneGap中,我使用
window.requestFileSystem(LocalFileSystem.PERSISTENT,onFileSystemSuccess,fail);

访问文件系统.
在我的华硕平板电脑中,它没有外部SD卡(我没有插入任何可移动设备)所以我认为文件系统根指向内部SD卡.但是,在我的HTC Desire HD中,数据被写入外部SD卡. (因为数据只是驻留在microSD卡中.)

那真相是什么?我在W3C文档中看不到任何线索,也许我想念一些东西……

PS:Android版本都是ICS(冰淇淋三明治).

解决方法

PhoneGap的FileAPI虽然是为反映HTML5规范而设计的,但实际上是W3C文档的自定义实现. You can find the docs specific to their API here.虽然它几乎可以使用相同的,但在Web和每个设备上实现的方式之间存在一些细微差别.存储的位置就是其中之一.

为了了解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”的内容.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。