0

使用时

    Process p=Runtime.getRuntime().exec(PATH+"adb push /home/user/test.txt /storage/sdcard0/Documents");
    p.waitFor();

手机上没有推送任何内容,没有引发错误。无论发送多大的文件,命令都会立即完成。有趣的是,具有不同命令(如“adb shell ls”、“adb devices”、“adb connect”等)的相同代码可以毫无问题地执行。在终端中触发时,推送命令也可以完美运行。

读取输出

    BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));

只会为空。PATH 变量设置为 sdk 的平台工具目录。

我错过了什么吗?

4

2 回答 2

0

如果 PATH 的值是一个有效的路径而不是类似的东西/bin:/usr/bin:/usr/local/bin,那么也许你只是错过了添加另一个斜杠来将目录与命令分开:

Process p=Runtime.getRuntime().exec(PATH+"/adb push /home/user/test.txt /storage/sdcard0/Documents");

您也可以尝试使用绝对路径来验证该路径是否真的不是问题:

Process p=Runtime.getRuntime().exec("/path/to/adb push /home/user/test.txt /storage/sdcard0/Documents");
于 2013-09-22T17:56:55.463 回答
0

看起来“adb help”将其输出发送到stderr。所以除了inputStream之外,你还需要查看进程的errorStream。

我猜在您的情况下,“adb push”遇到错误,因此输出再次进入标准错误。

于 2013-09-23T02:55:55.313 回答