The program I'm working on uses ADB (Android Debug Bridge) to send files to my phone:
for (String s : files)
String cmd = "adb -s 0123456789ABCDEF push " + s + " /mnt/sdcard/" + s;
try {
InputStream is = Runtime.getRuntime().exec(cmd).getInputStream();
while (is.read() != -1) {}
} catch (IOException e) {
e.printStackTrace();
}
I want the program to wait for ADB to complete the transfer, but ADB works like a daemon and therefore never ends. But the program continues to be saved, and somehow the files are not sent to my phone (no exceptions in the log). When I run the command from the console, it works without problems.
What am I doing wrong? How to send files through ADB?
NOTE: is.read() == -1will not work because the ADB daemon writes all output to the standard output of the system. I tried to forward it to a text file. It remained empty and the output was still being written to the terminal
. ErrorStream ADB adb adb push -. : ( Eclipse)
EDIT 2: ProcessBuilder RUntime.getRuntime.exec() :
java.io.IOException: Cannot run program "adb -s 0123456789ABCDEF push "inputfile "outputfile""": error=2, File or directory not found
ProcessBuilder start()
ADB (/usr/bin/adb). , /home/sebastian/testfile . ( "cmd" , ), evreything .