Android實現靜默安裝其實很簡單,今天在網上找資料找半天都說的很復雜,什麼需要系統安裝權限、調用系統隱藏的api、需要系統環境下編譯、需要跟systemUI同進程什麼的。我不知道他們真的實現瞭靜默安裝沒有,反正我按照他們的方式統統都失敗瞭。
下面我來說說我的靜默安裝實現方式,親測效果跟豌豆莢一樣,並且實現起來非常簡單:
1.支持靜默安裝的機器必須Root,這個不需要我多講瞭。
2.使用pm指令安裝即可。
關鍵代碼如下:
execRootCmdSilent("pm install -r " + Environment.getExternalStorageDirectory().getPath()+"/xxx.apk")
public int execRootCmdSilent(String cmd) { int result = -1; DataOutputStream dos = null; try { Process p = Runtime.getRuntime().exec("su"); dos = new DataOutputStream(p.getOutputStream()); Log.i(TAG, cmd); dos.writeBytes(cmd + "\n"); dos.flush(); dos.writeBytes("exit\n"); dos.flush(); p.waitFor(); result = p.exitValue(); } catch (Exception e) { e.printStackTrace(); } finally { if (dos != null) { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }