我正在嘗試批量安裝一些應(yīng)用程序,我想逐個應(yīng)用程序進(jìn)行安裝。我試圖讓 adb 命令響應(yīng)到我的 java 程序中,但我不明白為什么我沒有從InputStream!這是我的測試代碼:import java.io.IOException;import java.io.InputStream;public class main_adbStreamTest { public static void main(String[] args) { // TODO Auto-generated method stub try { Process pro = Runtime.getRuntime().exec("platform-tools\\adb.exe -s " + args[0] + ":5555 install -r " + args[1]); // + " >> " + SBCWLogger.getFileHandlerName() //add installation verification InputStream is = pro.getInputStream(); int i = 0; while( (i = is.read() ) != -1) { System.out.print((char)i); } //verification done } catch (IOException e) { e.printStackTrace(); } }}我發(fā)現(xiàn)這個答案不起作用,我也無法pro.getInputStream()正確使用。我也嘗試了這里的大部分答案,但我測試的答案都沒有。當(dāng)我沒有連接或安裝失敗時,我成功讀取了錯誤,但沒有在Success安裝結(jié)束時讀取信息消息。這就是我想要的。編輯:由于 Onix 的回答,下面的代碼正在運(yùn)行。import java.io.IOException;import java.io.InputStream;public class main_adbStreamTest { public static void main(String[] args) { // TODO Auto-generated method stub try { Process pro = new ProcessBuilder("platform-tools\\adb.exe", "-s",args[0], "install", "-r", args[1]).start(); //add installation verification InputStream is = pro.getInputStream(); int i = 0; while( (i = is.read() ) != -1) { System.out.print((char)i); } //verification done } catch (IOException e) { e.printStackTrace(); } }}要獲得著名的Success,只需將流寫入文件并讀取最后一行。
1 回答

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
試試這個
Process process = new ProcessBuilder("Full path to adb", "-s", args[0], "install", "-r", args[1]).start();
InputStream is = process.getInputStream();
添加回答
舉報
0/150
提交
取消