java - 使用Java从SD卡中提取android文件

标签 java android android-emulator sd-card

我想从 android SD 卡(模拟器或设备)中提取一个文件并将其放在我的 C:\驱动器上。

我如何在 Java 中执行此操作?在命令提示符下,我只需键入:

C:\Users\ME\android-sdks\platform-tools\adb.exe pull /sdcard/test_1329402481933.jpg c:\

所以在 Java 中,我认为它会是这样的:

 Runtime rt = Runtime.getRuntime();
     Process pr = rt.exec("C:\\Users\\ME\\android-sdks\\platform-tools\\adb.exe pull /sdcard/test_1329402481933.jpg c:\\");

     int exitVal = pr.waitFor();
     System.out.println("Exited with error code "+exitVal);

但是,它没有给我这个痕迹:

java.io.IOException: Error running exec(). Commands: [C:\Users\ME\android-sdks\platform-tools\adb.exe, pull, /sdcard/test_1329402481933.jpg, c:] Working Directory: null Environment: null at java.lang.ProcessManager.exec(ProcessManager.java:196) at java.lang.Runtime.exec(Runtime.java:225) at java.lang.Runtime.exec(Runtime.java:313) at java.lang.Runtime.exec(Runtime.java:246) at com.blinkbox.client.test.MyTest.takeScreenShot(MyTest.java:138) at com.blinkbox.client.test.MyTest.testCanOpenSettings(MyTest.java:66) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:205) at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:195) at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:175) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)

在 android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 在 android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430) 在 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447) 引起:java.io.IOException:权限被拒绝 java.lang.ProcessManager.exec( native 方法)位于 java.lang.ProcessManager.exec(ProcessManager.java:194) ... 19 更多

我愿意以完全不同的方式来做这件事......只需要完成工作:)

最佳答案

答案 1:我认为这里的线索是 Permission denied

尝试写入不同的目录。

答案 2:尝试“cmd/c ...”

String[] args = {"cmd", "/c", "\"C:\\Users\\ME\android-sdks\\platform-tools\\adb.exe pull /sdcard/test_1329402481933.jpg c:\\test\"",};
Runtime rt = Runtime.getRuntime();
ProcessBuilder pb = new ProcessBuilder(args);
Process pr = pb.start();  

关于java - 使用Java从SD卡中提取android文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316034/

相关文章:

java - 使用java打印pdf文件

android - NestedScrollView 的 fullScroll(View.FOCUS_UP) 无法正常工作

android - 我必须运行 adb connect 192.168.56.101 :5555 in order for android emulator to show up in list

Android 外部数据存储问题

java - 如何让应用程序在返回相机之前显示图片 5 秒?

android - 如何在 Android 设备上使用 .db 文件?

android:在模拟器上使用 MediaPlayer 录制音频

java - VMware VCenter 性能

java - JSF 代码格式化程序或 Eclipse XML 编辑器,每个标签换行?

java - 递归 FFT 错误?