如何在Android上启用了活动设备管理员的情况下删除应用程序?


81

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

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

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

Answers:


171

转到“设置”->“位置和安全性”->“设备管理员”,然后取消选择要卸载的管理员。

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


2
对于我来说,至少在华为方面有点不同。您应该转到设置->安全->设备管理员,然后停用应用程序。
desmond13 2015年

APK(Google Play服务)未出现在此设备管理员列表中。
andreszs

34

您还可以创建一个新的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);
}

然后您可以卸载


在执行上述删除设备管理员之前,我如何要求我的应用程序密码?有什么办法吗?
roll.stones 2012年

1
没有合法的方法可以做到这一点。您可以在onDisableRequested某些代码中使用admin类来锁定设备。然后,用户需要使用您选择的密码(可能是应用程序密码)解锁手机。然后要实际禁用管理员,用户需要导航到您的应用并单击其中的按钮。当然,如果要防止用户禁用管理员,则需要非常清楚地告知用户,如果他们尝试禁用管理员,则其设备将被锁定。
Reed

Jakar:请注意,onDisableRequested在用户单击系统设置中的“禁用”后立即调用。此时,AdminReceiver代码可以执行某些操作-锁定设备,擦除设备等,但是无法向用户询问更多问题,显示任何警告或询问用户是否确定。无论您显示的是哪种对话框或活动onDisableRequested,都将显示,但用户只需按“后退”按钮即可将其关闭,然后您的管理员将被禁用,并且您的应用将无法阻止它。
winitzki 2012年

以上内容适用于Android 3.1及以下版本。看来Android 3.2已解决此问题!又见stackoverflow.com/questions/9298364/...
winitzki

4

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

我的显示器上隐藏了“安全”字样,因此我不应该单击“锁定屏幕”。


4
停用选项对我来说很麻烦。接下来做什么?
APM

1

输入库密码,并在库右上角的选项图标中。按下它。在那儿-> settings-> Vault admin未被选中。完工。您现在可以卸载应用。


1

对于Redmi用户,

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

点击停用应用程序


1

Redmi / xiaomi用户

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

或简单地

转到设置->然后搜索设备管理应用程序->单击并选择要卸载的帐户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.