Я создал простое приложение для удаления 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);
Но теперь, согласно этому андроид документ, 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();
}
}
}
Конечно. Спасибо