2011-03-25 3 views
2

Galaxy Tab 용 응용 프로그램을 개발 중입니다. 이제/data/data // 폴더에 일부 파일을 가져와야합니다.장치의 루트에있는 Acess 파일

에뮬레이터는 정말 느립니다. 그래서 장치에서 테스트 중이므로 장치에서 파일을 가져와야합니다 (에뮬레이터에서 수행 할 수 있음). 어떻게해야합니까?

답변

5

코드에 디버그 기능을 추가하여 보호 된 폴더의 필수 파일을 휴대 전화의 SD 카드에 복사하십시오. 그런 다음 PC에서 액세스 할 수 있습니다.

public static void backupFile() throws IOException { 

    String inFileName = "/data/data/your.package.name/........"; //TODO Use folder/filename 
    File inFile = new File(inFileName); 
    FileInputStream fis = new FileInputStream(inFile); 

    String outFileName = Environment.getExternalStorageDirectory()+"/........"; //TODO Use output filename 
    OutputStream output = new FileOutputStream(outFileName); 

    byte[] buffer = new byte[1024]; 
    int length; 
    while ((length = fis.read(buffer))>0) 
    output.write(buffer, 0, length); 

    output.flush(); 
    output.close(); 
    fis.close(); 
} 
+0

니스! 죽는다는 소리하지 마. –

+0

아, 멋진! 이것은 유용 할 것이다. – slund

+0

중재. 나는 이것이 해결책이 될 수 있다고 생각한다. –

1
adb pull <path> 

은 장치에서 현재 디렉토리로 파일을 다운로드합니다.

adb shell을 사용하여 일반적인 셸 명령을 사용하여 장치를 탐색 할 수도 있습니다. adb shell ls <path>을 사용하면 실제로 쉘에 완전히 입력하지 않고도이 작업을 수행 할 수 있습니다.

편집 - 장치에 대한 루트 액세스 권한이없는 경우/data 디렉토리 나 다른 제한된 디렉토리의 파일에는 작동하지 않습니다.

+0

오류 : 기기의 사용 권한이 충분하지 않습니다. –

+0

예, 불행히도 특정 디렉토리는 제한되어 있습니다./data/data에있는 응용 프로그램 디렉토리는 없어야합니다. –

+0

흥미 롭습니다. 나는/데이터/데이터 아래에 아무것도 이런 방식으로 접근 할 수 없다는 인상 아래에 있었다. 필자는 루팅되지 않은 장치의/data에서 파일을 가져올 수 없었습니다. 아마도 필자는 올바른 파일을 선택하지 않은 것일까? – slund

3

장치의/data 디렉토리에 사용 권한이 제한되어 있습니다. adb를 사용하여 파일을 복사하려면 장치를 루핑해야합니다.

관련 문제