天天看點

Android靜默安裝解除安裝程式

功能:實作Android靜默安裝解除安裝功能

一、安裝

<span style="white-space:pre">	</span>/**
	 * 安裝應用
	 * 
	 * @param absolutePath
	 *            安裝檔案絕對路徑
	 * @return
	 */
	public static String install(String absolutePath) {
		String[] args = { "pm", "install", "-r", absolutePath };
		String result = "";
		ProcessBuilder processBuilder = new ProcessBuilder(args);
		Process process = null;
		InputStream errIs = null;
		InputStream inIs = null;
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			int read = -1;
			process = processBuilder.start();
			errIs = process.getErrorStream();
			while ((read = errIs.read()) != -1) {
				baos.write(read);
			}
			inIs = process.getInputStream();
			while ((read = inIs.read()) != -1) {
				baos.write(read);
			}
			byte[] data = baos.toByteArray();
			result = new String(data);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
           

二、解除安裝

/**
	 * 解除安裝應用程式
	 * 
	 * @param pakage
	 * @return
	 */
	public static String uninstall(String pakage) {
		String[] args = { "pm", "uninstall", pakage };
		String result = null;
		ProcessBuilder processBuilder = new ProcessBuilder(args);
		Process process = null;
		InputStream errIs = null;
		InputStream inIs = null;
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			int read = -1;
			process = processBuilder.start();
			errIs = process.getErrorStream();
			while ((read = errIs.read()) != -1) {
				baos.write(read);
			}
			baos.write('\n');
			inIs = process.getInputStream();
			while ((read = inIs.read()) != -1) {
				baos.write(read);
			}
			byte[] data = baos.toByteArray();
			result = new String(data);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (errIs != null) {
					errIs.close();
				}
				if (inIs != null) {
					inIs.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			if (process != null) {
				process.destroy();
			}
		}
		return result;
	}
           

所需權限:     <uses-permission android:name="android.permission.INSTALL_PACKAGES" />     <uses-permission android:name="android.permission.DELETE_PACKAGES" /> 注意:APK檔案需要系統簽名才能實作靜默安裝功能