天天看點

Android--靜默安裝

版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/chaoyu168/article/details/54406899

1、root權限靜默安裝實作

實作實際使用的是su pm install -r filePath指令。核心代碼如下:

protected static void excuteSuCMD() {  
		 Process process = null; 
		    OutputStream out = null; 
		    InputStream in = null; 
		    String currentTempFilePath = "/sdcard/QQ.apk";
		    try { 
		    // 請求root 
		    process = Runtime.getRuntime().exec("su");  
		    out = process.getOutputStream(); 
		    // 調用安裝 
		    out.write(("pm install -r " + currentTempFilePath + "\n").getBytes()); 
		    in = process.getInputStream(); 
		    int len = 0; 
		    byte[] bs = new byte[256]; 
		    while (-1 != (len = in.read(bs))) { 
		    String state = new String(bs, 0, len); 
		    if (state.equals("Success\n")) { 
		       //安裝成功後的操作 
		         } 
		       } 
		    } catch (IOException e) { 
		        e.printStackTrace(); 
		    } catch (Exception e) { 
		        e.printStackTrace(); 
		    } finally { 
		        try { 
		            if (out != null) { 
		                out.flush(); 
		                out.close(); 
		            } 
		            if (in != null) { 
		                in.close(); 
		            } 
		        } catch (IOException e) { 
		            e.printStackTrace(); 
		        } 
		    } 
	 }           

2、非root權限提示使用者安裝,代碼如下:

public static void openFile() {  
        // 核心是下面幾句代�?  
        if (!isHasfile()) {  
            downLoadFile(url);  
        }  
        Intent intent = new Intent();  
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
        intent.setAction(android.content.Intent.ACTION_VIEW);  
        intent.setDataAndType(  
                Uri.fromFile(new File("/sdcard/update/updata.apk")),  
                "application/vnd.android.package-archive");  
        mContext.startActivity(intent);  
    }             

繼續閱讀