2012-03-27 11 views
0

私は書籍「apress beginning phonegap」を購入しましたが、いくつかの例はうまくいきません。
私のアンドロイドデバイスでphoneGapを使用してSDCardのコンテンツを取得しようとしています。 しかし、私は - >error.message : 9を取得します。
私はモバイル開発の完全な初心者です。何が間違っているのか分かりません。PhoneGap Androidのエラーメッセージ:9 SDカードを取り込み中

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

あなたのAndroidManifest.xmlファイルに外部記憶域の書き込み権限がありません。次を追加してください:

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

と私はあなたの問題がなくなると喜んでいます。

あなたの問題を解決しなかったので、file:/// mnt/sdcardのURLを要求しようとすると、/ sdcardとしてシンボリックリンクになる可能性があります。

Howerver、あなたはより良いやっによって提供されるだろう:

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

とあなたの成功コールバックは、あなたのルートプロパティがディレクトリエントリであるとAndroid上で、これはあなたのSDカードになるファイルシステムを提供します。

+0

ups。それは、が追加されたので、私はsdcardのリストを取得しようとしていたので、何も関係がありません。 – Pero

0

オンエミュレータ: 私の作成したavdデバイスにはsdcardストレージがないため、失敗しました。avdの所有者にsdcardサイズを作成し、エミュレータで問題を修正しました。

オン物理デバイス: あなたのsdcardに別のプログラムでアクセスしてください。そうでない場合は、sdcardに欠陥があるか、失敗している可能性があります。

関連する問題