![](/img/trans.png)
[英]How to uninstall android apps using the new PackageInstaller api?
[英]How to uninstall apps in android programmatically with PackageInstaller
我創建了一個簡單的 android 卸載程序應用程序,它有助於一次刪除多個應用程序。 我使用此代碼來完成此任務:
Uri uri = Uri.fromParts("package", app.getPackageName(), null);
Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, uri);
// store result
intent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
startActivityForResult(intent, 1);
但是現在,根據這個android doc , ACTION_UNINSTALL_PACKAGE
在 API 級別 29 中已棄用,建議改用PackageInstaller.uninstall(String, IntentSender)
。 我想使用這個新的 api,但我找不到任何關於如何實現的好例子。 感謝任何幫助。
你可以參考這個鏈接
https://www.programcreek.com/java-api-examples/index.php?api=android.content.pm.PackageInstaller
並像這樣實施 -
@Override
public void uninstall(String packageName, String callerPackageName, int flags, IntentSender statusReceiver, int userId) throws RemoteException {
boolean success = VAppManagerService.get().uninstallPackage(packageName);
if (statusReceiver != null) {
final Intent fillIn = new Intent();
fillIn.putExtra(PackageInstaller.EXTRA_PACKAGE_NAME, packageName);
fillIn.putExtra(PackageInstaller.EXTRA_STATUS, success ? PackageInstaller.STATUS_SUCCESS : PackageInstaller.STATUS_FAILURE);
fillIn.putExtra(PackageInstaller.EXTRA_STATUS_MESSAGE, PackageHelper.deleteStatusToString(success));
fillIn.putExtra("android.content.pm.extra.LEGACY_STATUS", success ? 1 : -1);
try {
statusReceiver.sendIntent(mContext, 0, fillIn, null, null);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.