Android M(6.0) 靜默安裝和靜默解除安裝經驗分享
靜默安裝和解除安裝經驗:
- 靜默解除安裝:
String appPackage ="被解除安裝應用的包名";
Intent intent = new Intent(mContext, mContext.getClass());
PendingIntent sender = PendingIntent.getActivity(mContext, 0, intent,0);
PackageInstaller mPackageInstaller = mContext.getPackageManager().getPackageInstaller();
mPackageInstaller.uninstall(appPackage, sender.getIntentSender());
上面為呼叫PackageInstaller介面實現靜默解除安裝的簡單原始碼。
需要新建一個檔名為device_owner.xml的檔案(可以在windows下新建編輯,然後push),寫入如下資訊:
<?xmlversion="1.0" encoding="utf-8" standalone="yes"?>
<device-owner package="your.owner.app.package.id" name="Yourapp name" />
然後通過adb push到/data/system中。
然後在程式碼中通過簡單原始碼即可實現靜默解除安裝功能。
- 靜默安裝:
靜默安裝需要root許可權,或將app作為系統應用,賦予:
<uses-permissionandroid:name="android.permission.DELETE_PACKAGES"/>
<uses-permissionandroid:name="android.permission.INSTALL_PACKAGES"/>
許可權之後方能使用 pm install或者 pm uninstall命令實現靜默安裝或解除安裝。
方法如下:
首先,將apk進行系統簽名(網上說需要先反編譯,重新新增AndroidManifest.xml檔案中的INSTALL和DELETE
另外需要注意:
待安裝的apk的路徑,例如/sdcard/download/*.apk 保險起見,每一級目錄都要進行許可權賦予:
chmod 777 /sdcard
chmod 777 /sdcard/download
chmod 777 /sdcard/download/*.apk
否則安裝時會出現 INSTALLED_FAILED_INVALID_URI(意思是無效路徑)的錯誤。