PhoneGap Android-сообщение об ошибке: 9 при получении SD-карты - PullRequest
0 голосов
/ 27 марта 2012

я купил книгу «apress begin phonegap», но некоторые примеры не работают.
в этом примере я пытаюсь получить содержимое моей SDCard с phoneGap на моем устройстве Android.но я получаю -> 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 ]

2 голосов
/ 28 марта 2012

Я почти уверен, что вам не хватает разрешения на запись во внешнее хранилище в файле AndroidManifest.xml.Попробуйте добавить:

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

, и я готов поспорить, что ваша проблема исчезнет.

Хорошо, так как это не решило вашу проблему, вы можете попытаться запросить URLof file: /// mnt / sdcard, так как / sdcard может быть символической ссылкой во многих случаях.

Однако, вам лучше будет выполнить:

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

иваш успешный обратный вызов даст вам файловую систему, корневым свойством которой является запись каталога, а в Android это будет ваша SD-карта.

0 голосов
/ 27 апреля 2012

ON Emulator: в моем случае на устройстве avd, которое я создал, не было хранилища sdcard, поэтому оно не удалось, я создал размер sdcard на свойствах avd, и это устранило проблему на эмуляторе.

На физическомУстройство: попробуйте получить доступ к SD-карте через другую программу и посмотрите, работает ли она, если нет, возможно, ваша SD-карта неисправна или неисправна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...