2011-03-25 38 views
2

我正在開發Galaxy Tab的應用程序,現在我需要在/ data/data文件夾中獲取一些文件。在設備的根目錄中獲取文件

模擬器真的很慢。所以我在設備上進行測試,並且需要從設備(從模擬器我能夠做到)獲取文件。我怎樣才能做到這一點?

回答

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

不錯!永不言敗。 – 2011-03-25 16:08:04

+0

啊,漂亮!這會派上用場。 – slund 2011-03-25 16:10:11

+0

中間。我認爲這可能是一個解決方案。 – 2011-03-25 17:04:35

1
adb pull <path> 

將從設備下載文件到當前目錄。

您還可以使用adb shell來使用常用shell命令探索您的設備。 adb shell ls <path>會讓你在沒有完全進入shell的情況下做到這一點。

編輯 - 對於/ data目錄中的文件或其他受限制的目錄中的文件不起作用,除非您具有對設備的根訪問權限。

+0

錯誤:設備權限不足 – 2011-03-25 15:25:55

+0

是的,不幸的是,某些目錄受到限制。/data/data中的應用程序目錄不應該是。 – 2011-03-25 15:35:51

+0

有趣。我的印象是,數據/數據下的任何東西都不會以這種方式訪問​​。我從來沒有能夠從無根設備上的/數據中提取任何文件。也許我從來沒有選擇正確的文件? – slund 2011-03-25 15:45:56

3

設備上的/ data目錄具有受限權限。要使用adb複製文件,您需要植入設備。