1. 程式人生 > >Android M(6.0) 靜默安裝和靜默解除安裝經驗分享

Android M(6.0) 靜默安裝和靜默解除安裝經驗分享

靜默安裝和解除安裝經驗:

  1. 靜默解除安裝:

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中。

然後在程式碼中通過簡單原始碼即可實現靜默解除安裝功能。

  1. 靜默安裝:

靜默安裝需要root許可權,或將app作為系統應用,賦予:

<uses-permissionandroid:name="android.permission.DELETE_PACKAGES"/>

<uses-permissionandroid:name="android.permission.INSTALL_PACKAGES"/>

許可權之後方能使用 pm install或者 pm uninstall命令實現靜默安裝或解除安裝。

方法如下:

首先,將apk進行系統簽名(網上說需要先反編譯,重新新增AndroidManifest.xml檔案中的INSTALLDELETE

的許可權,但是我這次的情況反編譯後發現Manifest檔案中有,於是直接進行系統簽名即可),之後將apk 通過adb push/system/app/APP名稱”下(需要Root許可權),隨後adb reboot生效。

另外需要注意:

待安裝的apk的路徑,例如/sdcard/download/*.apk  保險起見,每一級目錄都要進行許可權賦予:

chmod 777 /sdcard

chmod 777 /sdcard/download

chmod 777 /sdcard/download/*.apk

否則安裝時會出現 INSTALLED_FAILED_INVALID_URI(意思是無效路徑)的錯誤。