PhoneGap Android错误消息:获取SD卡时为9

时间:2012-03-27 19:22:33

标签: android cordova

我买了这本书“apress beginning phonegap”,但有些例子不起作用 在这个例子中我试图在我的Android设备上使用phoneGap获取我的SD卡的内容。 但我得到了一个 - > 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);
}

问题出在哪里?

2 个答案:

答案 0 :(得分:2)

我很确定您在AndroidManifest.xml文件中缺少写入外部存储权限。尝试添加:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我愿意打赌你的问题会消失。

好吧,因为那不能解决你的问题,你可能想看看尝试请求file:/// mnt / sdcard的url,因为/ sdcard很多时候都可以成为sym链接。

然后,你可以通过以下方式获得更好的服务:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

并且您的成功回调将为您提供一个文件系统,其root属性是目录条目,在Android上,这将是您的SD卡。

答案 1 :(得分:0)

ON模拟器: 在我的情况下,我创建的avd设备没有SD卡存储,因此它失败了,我在avd属性上创建了一个sdcard大小并修复了模拟器上的问题。

在物理设备上: 尝试通过另一个程序访问您的SD卡,看看是否有效,如果不是,您的SD卡可能有缺陷或失败。