2012-04-06 4 views
1

Phonegap을 사용하여 SD 카드를 열고 Android에서 파일을 업로드하려고합니다. 다음은 HTML에 SD 카드 콘텐츠를 추가하는 코드입니다.하지만 아무 것도 표시되지 않습니다. cordova.js, jquery1.7.1.js을 사용하고 있습니다.HTML, 자바 스크립트 및 Phonegap을 사용하여 Android SD 카드를 열려고 시도합니다.

내 자바 스크립트 :

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

logcat에 오류가 있습니까? –

+0

logcat에 아무 것도 없음 – user1051599

답변

1

당신이 코르도바의 API 문서에 모습을 찍은 적이 다음은 내 코드는? 나는이 샘플 코드를 사용해 보았고 정상적으로 작동했다. Link to API and the sample code

+0

나는 또한 SD 카드가 열리지 않았다고 시도했다. 나는 내가 SD 카드에 액세스하고 파일을 선택하여 내 자신을 업로드 할 필요가있는 파일에 액세스 할 필요가 없다 ... – user1051599

+0

이게 너에게 뭔가가 될 수 있을까? http://stackoverflow.com/questions/9940667/how-to-open-sdcard-of-android-using-phonegap – Jack

+0

또한 나 .. 일하는 G 조 ... 내가 시도 – user1051599

관련 문제