【问题标题】:How to remove an app with active device admin enabled on Android?如何删除在 Android 上启用了活动设备管理员的应用程序?
【发布时间】:2011-07-20 05:51:16
【问题描述】:

我编写了一个启用了设备管理员 (DevicePolicyManager) 的应用程序并安装了它。 但是当我想卸载它时,它返回失败并显示此消息

WARN/PackageManager(69):不删除包 com.mypackage.test:有活动的设备管理员

如何卸载它,或以编程方式卸载它? 谢谢。

【问题讨论】:

    标签: android uninstallation device-admin


    【解决方案1】:

    转到设置->位置和安全->设备管理员并取消选择要卸载的管理员。

    现在卸载应用程序。如果仍然提示您需要在卸载前停用应用程序,您可能需要在卸载前强制停止应用程序。

    【讨论】:

    • 对我来说有点不同,至少在华为上是这样。你应该去设置->安全->设备管理员,然后你应该停用你的应用程序。
    • APK(Google Play 服务)未出现在此设备管理员列表中。
    【解决方案2】:

    您还可以创建一个新的 DevicePolicyManager,然后从应用中按钮的 onClickListener 中使用 removeAdmin(adminReceiver)

    //set the onClickListener here
    {
       ComponentName devAdminReceiver = new ComponentName(context, deviceAdminReceiver.class);
       DevicePolicyManager dpm = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
       dpm.removeActiveAdmin(devAdminReceiver);
    }
    

    然后你就可以卸载了

    【讨论】:

    • 如何在执行上述删除设备管理员之前询问我的应用程序密码??有什么办法吗??
    • 没有合法的方法可以做到这一点。您可以在onDisableRequested 中包含一些代码来使用管理类锁定设备。然后,用户需要使用您选择的密码(可能是应用密码)解锁手机。然后要真正禁用管理员,用户需要导航到您的应用程序并单击其中的一个按钮。当然,如果您要阻止用户禁用管理员,则需要非常让用户清楚,如果他们尝试禁用,他们的设备将被锁定。
    • Jakar:注意onDisableRequested会在用户点击系统设置中的“禁用”后立即调用。此时,AdminReceiver 代码可以做一些事情——锁定设备、擦除设备等,但无法向用户询问更多问题、显示任何警告或询问用户是否确定。无论您从onDisableRequested 显示的任何对话框或活动,都会显示,但用户可以简单地使用“后退”按钮将其关闭,然后您的管理员将被禁用,您的应用将无法阻止它。
    • 以上内容适用于Android 3.1及以下版本。看来Android 3.2 已经解决了这个问题!另见stackoverflow.com/questions/9298364/…
    【解决方案3】:

    三星上,转到“设置”->“锁定屏幕和安全”->“其他安全设置”->“电话管理员”并取消选择您要卸载的管理员。

    “安全”字样隐藏在我的显示器上,所以我不应该点击“锁定屏幕”。

    【讨论】:

    • 停用选项对我来说是无效的。下一步该做什么?
    【解决方案4】:

    Redmi/小米用户

    转到"Settings" -> "Password & security" -> "Privacy" -> "Special app access" -> "Device admin apps"并选择您要卸载的帐户。

    或者简单

    进入设置 -> 然后搜索设备管理应用程序 -> 点击并选择您要卸载的帐户。

    【讨论】:

      【解决方案5】:

      输入保险库密码,保险库右上角选项图标就在那里。按下它。在那个 ->settings->vault admin rites 中取消选择。完成工作。你现在可以卸载应用了。

      【讨论】:

        【解决方案6】:

        对于 Redmi 用户,

        设置 -> 密码和安全 -> 隐私 -> 特殊应用访问 -> 设备管理应用

        点击停用应用程序

        【讨论】:

          【解决方案7】:

          如果你知道包名,用 abd you can remove the device owner

          adb shell dpm remove-active-admin packagename/.yourAdminReceiver
          

          然后

          adb uninstall packagename
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-05-21
            • 1970-01-01
            • 2023-03-18
            • 2012-06-15
            • 1970-01-01
            • 2012-03-07
            • 2020-02-10
            • 2015-09-06
            相关资源
            最近更新 更多