在我的应用程序中,我有选项(复选框)以编程方式启用/禁用设备管理,当我禁用admin并尝试启用它时,它可以工作,但是当我禁用它时,它所做的是禁用设备管理而不提示停用窗口要求停用。现在我需要做的是正确的方式,我希望应用程序显示适当的屏幕要求停用设备管理。我有以下代码片段取自android开发人员网站,
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// Activate device administration
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, deviceAdmin);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"Activate service to get access");
startActivityForResult(intent, ACTIVATION_REQUEST);
} else {
try {
devicePolicyManager.removeActiveAdmin(deviceAdmin);
isAdminActive = false;
} catch (Exception e) {
e.printStackTrace();
}
}
}
应该可以了
ComponentName devAdminReceiver = new ComponentName(context, DeviceAdminReceiver.class);
DevicePolicyManager dpm = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.removeActiveAdmin(devAdminReceiver);
这是不可能的。这是用户的权利。
API将始终显示一个对话框,用于确认设备管理的取消激活
尽管EDM api提供了一种方法,您可以静默地取消设备管理员的激活。所以用户看不到特定设备管理员的停用UI。但是 EDM api不容易获得,它们用于商业用途。