【问题标题】:Is there any particular way to get the system uninstall popup appears listener in android有没有什么特别的方法可以让系统卸载弹出窗口出现在android中的监听器
【发布时间】:2019-09-09 10:47:11
【问题描述】:

我遇到了一个关于如何获取设备卸载对话框侦听器的问题,如下所示, “您要卸载此应用程序吗?” 为此,我尝试使用设备管理员管理器,但没有得到所需的解决方案。如果您有任何帮助,我们将不胜感激。

【问题讨论】:

    标签: android kotlin system uninstallation


    【解决方案1】:

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


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

    恐怕没有官方的方法可以检测到卸载弹出窗口,即使你有设备管理员权限,但是有一种 hacky 方法可以做到这一点,检查一下here,它并不完美并且有它的限制,但总比没有好。


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

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

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

    注意:以上intent ACTION_UNINSTALL_PACKAGE仅在API 14(Android 4.0)之后可用,如果您的应用针对Android P及以上,您必须将权限REQUEST_DELETE_PACKAGE添加到您的@ 987654335@。此外,自 Android Q 以来,此 Intent 已被弃用,在这种情况下,您应该使用 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

    【讨论】:

    • 感谢您的回答,但我想要在卸载应用程序之前显示的弹出确认对话框的侦听器。
    • 您应该编辑您的问题以更清楚您的意图。无论如何,如果这是你想做的,恐怕没有官方的方法可以做到这一点,即使你有设备管理员权限,但有一种 hacky 方法可以做到这一点,看看here跨度>
    • 是的,你完全理解它,我想限制用户在后台服务运行时在一段时间内不卸载我的应用程序,我尝试了上面的链接,但它没有帮助我:( . 有一个名为 (OFFTIME) 的应用程序在后台做这种事情,我还发现他们如何在后台管理卸载程序弹出窗口
    • 如果你只是想阻止用户卸载,你可以注册为Device Admin来阻止卸载(用户必须取消注册才能卸载),然后我想你可以从那里限制打开设置应用程序(用户必须打开才能注销您的应用程序),here的方法,设置应用程序包名称为com.android.settings
    • @jackz314 当我执行 packageInstaller 卸载时,什么也没有发生。我认为您不能只使用包安装程序类安装任何应用程序。看到这个答案 - stackoverflow.com/a/30462922/3034693
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多