首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhoneGap安卓错误-取SD卡时消息:9

PhoneGap安卓错误-取SD卡时消息:9
EN

Stack Overflow用户
提问于 2012-03-28 03:22:33
回答 2查看 1.2K关注 0票数 0

我买了一本名为"apress beginning“的书,但有些例子行不通。

在这个例子中,我尝试在我的安卓设备上使用phoneGap来获取我的SDCard的内容。但是我得到了一个-> error.message : 9

我完全是一个移动开发的新手,这就是为什么我不知道哪里会出问题。

代码语言:javascript
复制
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);
}

问题出在哪里?

EN

回答 2

Stack Overflow用户

发布于 2012-03-28 08:57:13

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

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我敢打赌你的问题会消失。

好吧,既然这并没有解决你的问题,你可能会考虑尝试请求file:///mnt/sdcard的url,因为/sdcard在很多时候可能是一个sym链接。

但是,如果您执行以下操作会更好:

代码语言:javascript
复制
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);

你的成功回调将会给你一个fileSystem,他的根属性是一个目录项,在Android上这将是你的SD卡。

票数 2
EN

Stack Overflow用户

发布于 2012-04-27 18:51:22

在emulator上:在我的例子中,我创建的avd设备没有SD卡存储,所以它失败了,我在avd属性上创建了一个SD卡大小,并修复了模拟器上的问题。

在物理设备上:尝试通过另一个程序访问您的SD卡,并查看是否正常工作,如果不能,您的SD卡可能有缺陷或出现故障。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9896221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档