我想从 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/