2011-03-25 90 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复制文件,您需要植入设备。