類似銀行叫號機等無人值守設備,需實現檢測更新 → 靜默下載 → 靜默安裝全流程無用戶干預。核心難點:Android 7+ 限制靜默安裝,需系統簽名或 Device Owner 權限。
UpdateManager:單例管理更新流程downloadApkThread:子線程下載,Handler 回調進度installApk():Intent.ACTION_VIEW 唤起系統安裝器DownloadDialog:可選進度彈窗(無人值守可隱藏)// 7.0+ 文件提供者適配
File apkFile = new File(savePath, appName);
Uri apkUri = FileProvider.getUriForFile(context, authority, apkFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(intent);
INSTALL_PACKAGES 權限,可 PackageManager.installPackage() 靜默安裝DevicePolicyManager.installExistingPackage() 無需用戶確認Runtime.getRuntime().exec("pm install -r " + path)