我买了一本名为"apress beginning“的书,但有些例子行不通。
在这个例子中,我尝试在我的安卓设备上使用phoneGap来获取我的SDCard的内容。但是我得到了一个-> error.message : 9。
我完全是一个移动开发的新手,这就是为什么我不知道哪里会出问题。
function onDeviceReady() {
window.resolveLocalFileSystemURI("file:///sdcard",onResolveSuccess, onError);
}
function onResolveSuccess(fileEntry) {
var directoryReader = fileEntry.createReader();
directoryReader.readEntries(onSuccess, onError);
}
function onSuccess(entries) {
document.getElementById("loading").innerHTML = "";
var ul = document.getElementById("file-listing");
for (var index = 0; index < entries.length; index++) {
var li = document.createElement('li');
li.innerHTML = entries[index].name;
ul.appendChild(li);
}
}
function onError(error) {
alert('code: ' + error.code + '\n'+ 'message: ' + error.message + '\n');
}
/** Called when browser load this page*/
function init(){
document.addEventListener("deviceready", onDeviceReady, false);
}问题出在哪里?
发布于 2012-03-28 08:57:13
我非常确定您的AndroidManifest.xml文件中缺少写入外部存储权限。尝试添加:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />我敢打赌你的问题会消失。
好吧,既然这并没有解决你的问题,你可能会考虑尝试请求file:///mnt/sdcard的url,因为/sdcard在很多时候可能是一个sym链接。
但是,如果您执行以下操作会更好:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);你的成功回调将会给你一个fileSystem,他的根属性是一个目录项,在Android上这将是你的SD卡。
发布于 2012-04-27 18:51:22
在emulator上:在我的例子中,我创建的avd设备没有SD卡存储,所以它失败了,我在avd属性上创建了一个SD卡大小,并修复了模拟器上的问题。
在物理设备上:尝试通过另一个程序访问您的SD卡,并查看是否正常工作,如果不能,您的SD卡可能有缺陷或出现故障。
https://stackoverflow.com/questions/9896221
复制相似问题