是否有任何特定的方法来获得系统卸载popup出现在android中的监听器

问题描述 投票:1回答:1

我正面临着如何获取设备卸载对话框监听器的问题,如下所示,“你想要卸载这个应用程序吗?”为此,我尝试了设备管理员管理器,但没有得到所需的解决方案。如果您的任何帮助将得到更多的赞赏。

android kotlin system uninstall
1个回答
2
投票

如果你想阻止用户卸载你的应用程序,你可以注册为Device Admin以防止卸载(用户必须取消注册以便能够卸载你的应用程序),here是一个如何做到这一点的例子,从那里我想你可以限制Android设置应用程序的打开(用户必须打开以取消注册您的应用程序作为设备管理员),here的方法如何,设置应用程序包名称是com.android.settings


关于如何检测app卸载的第二个答案:

我担心没有正式的方法来检测卸载弹出窗口,即使你有设备管理员权限,但有一种hacky方式来做它,检查它here,它不完美,并有其限制,但这仍然是有总比没有好。


如何提示卸载应用程序的原始答案:

您不需要设备管理员管理器来提示卸载您的应用程序,您只需使用意图启动您要求的卸载提示,如下所示:

Uri packageUri = Uri.parse("package:APP_PACKAGE_NAME");
Intent uninstallIntent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE, packageUri);
startActivity(uninstallIntent);

注意:上述意图ACTION_UNINSTALL_PACKAGE仅在API 14(Android 4.0)之后可用,如果您的应用程序针对Android P及更高版本,则必须将权限REQUEST_DELETE_PACKAGE添加到您的AndroidManifest。此外,自Android Q以来,这个意图已被弃用,在这种情况下你应该像这样使用PackageInstaller.uninstall()

String packageName = "com.your.app.package";
Intent intent = new Intent(getActivity(), getActivity().getClass());
PendingIntent sender = PendingIntent.getActivity(getActivity(), 0, intent, 0);
PackageInstaller packageInstaller = getActivity().getPackageManager().getPackageInstaller();
packageInstaller.uninstall(packageName, sender.getIntentSender());

但是有一大堆限制,详情请参考documentation

© www.soinside.com 2019 - 2024. All rights reserved.