Android 靜默安裝/後臺安裝

yangxi_001發表於2016-04-19

    Android實現靜默安裝其實很簡單,今天在網上找資料找半天都說的很複雜,什麼需要系統安裝許可權、呼叫系統隱藏的api、需要系統環境下編譯、需要跟systemUI同程式什麼的。我不知道他們真的實現了靜默安裝沒有,反正我按照他們的方式統統都失敗了。

    下面我來說說我的靜默安裝實現方式,親測效果跟豌豆莢一樣,並且實現起來非常簡單:

    

    1.支援靜默安裝的機器必須Root,這個不需要我多講了。

    2.使用pm指令安裝即可。

    3.特別注意 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;
    }

    不需要在Manifest中宣告任何許可權

相關文章