我在检查是否应提示用户在设备上启用DeviceAdmin后,在Activity中启动DevicePolicyManager。
如果用户点击 "激活按钮",将启用deviceAdmin。
如果用户点击 "取消"按钮,用户将显示一个对话框,"您需要在设备上激活设备管理员才能继续使用应用程序"。点击" OK"在此对话框中,我们退出应用程序。
这可以在任何设备上按预期工作。然而,当"不要保持活动"在设备部分的设备上启用,上述行为会发生变化,以防用户选择"取消" DeviceAdmin激活提示。当用户在提示符上单击“取消”时,意图DevicePolicyManager重新启动而不显示对话框 - "您需要在设备上激活设备管理员才能继续使用应用程序"。有人知道为什么会这样吗?
答案 0 :(得分:0)
您将在应用程序中编写此类, 如果您启用或禁用DPM,这将收到,因此当您收到onDisable时,您可以通知用户,
public class DeviceAdmin extends DeviceAdminReceiver {
static SharedPreferences getSamplePreferences(Context context) {
return context.getSharedPreferences(DeviceAdminReceiver.class.getName(), 0);
}
void showToast(Context context, CharSequence msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onEnabled(Context context, Intent intent) {
// showToast(context, "Device Admin: enabled");
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
//return "This is an optional message to warn the user about disabling.";
return null;
}
@Override
public void onDisabled(Context context, Intent intent) {
// showToast(context, "Device Admin: disabled");
}
}
现在,您将使用某些活动启动DPM 所以在onActivityResult中你会收到resultCode,你点击了取消按钮或激活按钮 使用而不是代码,您可以检查DPM是否被激活或取消,如果它被取消然后通知用户警报和警报只给一个确定按钮,然后点击完成活动 我认为这应该有用,如果这不起作用请告诉我们问题:) 快乐的编码
答案 1 :(得分:0)
启用“不保留活动”时:只要显示“设备管理”活动,您的主要活动就会完成。
取消“设备管理员”后,将恢复上一个活动:调用onCreate
并将其保存状态作为参数。
我猜你没有保存此捆绑包中的任何内容,因此您的活动具有与首次启动它时相同的行为。