Android靜默安裝應用和靜默解除安裝應用
這裡提供兩個Android系統下靜默安裝應用和靜默解除安裝應用的方法,在 5.1 版本系統上執行通過。當然,執行程式碼的應用需要有系統許可權,這就需要應用通過系統簽名檔案進行簽名了,需要使用到 platform.pk8 和 platform.x509.pem 兩個檔案,可以參照我的另一篇文章:Android 用 platform.pk8 和 platform.x509.pem 生成 keystore 系統簽名檔案
/**
* 靜默安裝App
*
* @param apkPath apk路徑
* @return 是否安裝成功
*/
public static boolean installApp(String apkPath) {
Process process = null;
BufferedReader successResult = null;
BufferedReader errorResult = null;
StringBuilder successMsg = new StringBuilder();
StringBuilder errorMsg = new StringBuilder();
try {
process = new ProcessBuilder("pm", "install", "-r", apkPath).start();
successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
while ((s = successResult.readLine()) != null) {
successMsg.append(s);
}
while ((s = errorResult.readLine()) != null) {
errorMsg.append(s);
}
} catch (Exception e) {
} finally {
try {
if (successResult != null) {
successResult.close();
}
if (errorResult != null) {
errorResult.close();
}
} catch (Exception e) {
}
if (process != null) {
process.destroy();
}
}
//如果含有“success”單詞則認為安裝成功
return successMsg.toString().equalsIgnoreCase("success");
}
/**
* 靜默解除安裝App
*
* @param packageName 包名
* @return 是否解除安裝成功
*/
public static boolean uninstallApp(String packageName) {
Process process = null;
BufferedReader successResult = null;
BufferedReader errorResult = null;
StringBuilder successMsg = new StringBuilder();
StringBuilder errorMsg = new StringBuilder();
try {
process = new ProcessBuilder("pm", "uninstall", packageName).start();
successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String s;
while ((s = successResult.readLine()) != null) {
successMsg.append(s);
}
while ((s = errorResult.readLine()) != null) {
errorMsg.append(s);
}
} catch (Exception e) {
} finally {
try {
if (successResult != null) {
successResult.close();
}
if (errorResult != null) {
errorResult.close();
}
} catch (Exception e) {
}
if (process != null) {
process.destroy();
}
}
//如果含有“success”單詞則認為解除安裝成功
return successMsg.toString().equalsIgnoreCase("success");
}
/**
* 判斷應用是否存在
*
* @param context 上下文
* @param packageName 包名
* @return 是否存在
*/
private boolean appExist(Context context, String packageName) {
try {
List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(0);
for (PackageInfo packageInfo : packageInfoList) {
if (packageInfo.packageName.equalsIgnoreCase(packageName)) {
return true;
}
}
} catch (Exception e) {
}
return false;
}
相關文章
- Android靜默安裝和靜默解除安裝Android
- android apk靜默安裝和解除安裝AndroidAPK
- PackageInstaller 5.0原始碼分析靜默安裝與靜默解除安裝Package原始碼
- 應用黑名單以及靜默安裝的實現
- Android 靜默安裝/後臺安裝Android
- rac靜默安裝
- dbca 靜默安裝
- oracle靜默安裝Oracle
- Oracle 靜默安裝Oracle
- oracle安裝:使用響應檔案靜默安裝Oracle
- 靜默安裝Azure CLI
- 靜默安裝ORACLE(文件)Oracle
- oracle 11g rac 靜默解除安裝Oracle
- 【11g 單庫解除安裝、靜默安裝】實驗
- oracle靜默安裝raw裝置Oracle
- 靜默安裝oracle時報錯Oracle
- ORACLE 11.2.0.4靜默安裝Oracle
- 靜默安裝oracle軟體Oracle
- Oracle靜默安裝(單機)Oracle
- 靜默安裝、建庫(轉)
- 靜默安裝ORACLE 軟體Oracle
- Oracle靜默安裝說明Oracle
- 關於靜默安裝和刪除
- 【靜默】在RHEL 6.5上靜默安裝Oracle 18cOracle
- oracle 19C 靜默安裝Oracle
- Linux下靜默安裝OraceLinux
- 靜默安裝and手動建庫
- oracle 12c 靜默安裝Oracle
- Oracle 11g 靜默安裝Oracle
- 靜默安裝功能的實現
- 靜默安裝oracle10gOracle
- AIX 6.1 靜默安裝11.1.0.6AI
- oracle10g 靜默安裝Oracle
- Oracle 10g 靜默安裝Oracle 10g
- 【DBCA -SILENT】靜默安裝如何啟用歸檔模式模式
- RHEL5 Oracle 11G R2 RAC 靜默安裝 (二)GI靜默安裝Oracle
- 靜默方式安裝11gR2
- centos 7.4靜默安裝oracle 19.3CentOSOracle