2012-04-06 3 views
1

zu öffnen Ich versuche, die SD-Karte zu öffnen und eine Datei in Android mit Phonegap hochladen. Unten ist der Code, wo ich den Inhalt der SD-Karte an meinen HTML anhefte, aber nichts wird angezeigt. Ich benutze cordova.js, jquery1.7.1.js. Unten ist mein Code:Versuchen, Android SD-Karte mit HTML, Javascript und Phonegap

Mein Javascript:

function onDeviceReady() { 
    getFileSystem(); 
} 

function getFileSystem() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, 
     function(fileSystem) { // success get file system 
      root = fileSystem.root; 
      listDir(root); 
     }, 
     function(evt) { // error get file system 
      console.log("File System Error: "+evt.target.error.code); 
     } 
    ); 
} 

function listDir(directoryEntry) { 
    if (!directoryEntry.isDirectory) 
     console.log('listDir incorrect type'); 

    $.mobile.showPageLoadingMsg(); // show loading message 

    currentDir = directoryEntry; // set current directory 
    directoryEntry.getParent(
     function(par) { // success get parent 
      parentDir = par; // set parent directory 
      if ((parentDir.name == 'sdcard' && currentDir.name != 'sdcard') || parentDir.name != 'sdcard') 
       $('#backBtn').show(); 
     }, 
     function(error) { // error get parent 
      console.log('Get parent error: ' + error.code); 
     } 
    ); 

    var directoryReader = directoryEntry.createReader(); 
    directoryReader.readEntries(
     function(entries) { 
      var dirContent = $('#dirContent'); 
      dirContent.empty(); 

      var dirArr = new Array(); 
      var fileArr = new Array(); 
      for (var i=0; i < entries.length; ++i) { // sort entries 
       var entry = entries[i]; 
       if (entry.isDirectory && entry.name[0] != '.') 
        dirArr.push(entry); 
       else if (entry.isFile && entry.name[0] != '.') 
        fileArr.push(entry); 
      } 

      var sortedArr = dirArr.concat(fileArr); // sorted entries 
      var uiBlock = ['a','b','c','d']; 

      for (var i=0; i < sortedArr.length; ++i) { // show directories 
       var entry = sortedArr[i]; 
       var blockLetter = uiBlock[i%4]; 
       //console.log(entry.name); 
       if (entry.isDirectory) 
        dirContent.append('<div class="ui-block-' + blockLetter + '"><div class="folder"><p>' + entry.name + '</p></div></div>'); 
       else if (entry.isFile) 
        dirContent.append('<div class="ui-block-' + blockLetter + '"><div class="file"><p>' + entry.name + '</p></div></div>'); 
      } 
      $.mobile.hidePageLoadingMsg(); // hide loading message 
     }, 
     function(error) { 
      console.log('listDir readEntries error: ' + error.code); 
     } 
    ); 
} 
+0

Alle Fehler in logcat? –

+0

nichts in Logcat – user1051599

Antwort

1

Sie einen Blick in die Cordova API Dokumente genommen haben? Ich habe versucht, diesen Beispielcode und es hat gut funktioniert. Link to API and the sample code

+0

Ich habe versucht, dass auch SD-Karte öffnet nicht. Ich muss nicht auf die Datei zugreifen, die ich auf SD-Karte zugreifen muss und Datei selbst auswählen, um hochzuladen ... – user1051599

+0

Könnte das etwas für Sie sein? http://stackoverflow.com/questions/9940667/how-to-open-sdcard-of-android-using-phone-gap – Jack

+0

das ist auch ich ..nicht funktioniert G ... Ich habe es versucht – user1051599