我编写了一个启用了设备管理员的应用程序(DevicePolicyManager)并安装了该应用程序。但是当我要卸载它时,它返回失败并显示此消息
WARN / PackageManager(69):不删除软件包com.mypackage.test:具有活动的设备管理员
如何卸载或以编程方式卸载它?谢谢。
Answers:
您还可以创建一个新的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
某些代码中使用admin类来锁定设备。然后,用户需要使用您选择的密码(可能是应用程序密码)解锁手机。然后要实际禁用管理员,用户需要导航到您的应用并单击其中的按钮。当然,如果要防止用户禁用管理员,则需要非常清楚地告知用户,如果他们尝试禁用管理员,则其设备将被锁定。
onDisableRequested
在用户单击系统设置中的“禁用”后立即调用。此时,AdminReceiver代码可以执行某些操作-锁定设备,擦除设备等,但是无法向用户询问更多问题,显示任何警告或询问用户是否确定。无论您显示的是哪种对话框或活动onDisableRequested
,都将显示,但用户只需按“后退”按钮即可将其关闭,然后您的管理员将被禁用,并且您的应用将无法阻止它。
Redmi / xiaomi用户
转到"Settings" -> "Password & security" -> "Privacy" -> "Special app access" -> "Device admin apps"
并选择要卸载的帐户。
或简单地
转到设置->然后搜索设备管理应用程序->单击并选择要卸载的帐户。