如何在Android中启动应用程序时激活DeviceAdmin?

时间:2011-11-14 09:24:19

标签: android device-admin

您好我想在应用程序启动时启动/激活Device Admin而不使用Intent。现在我正在使用此代码:

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, Global.mDeviceAdminSample);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "Additional text explaining why this needs to be added.");
            startActivityForResult(intent, RESULT_ENABLE);

但我不想使用Intent。我想直接启动Device Admin。

有谁知道我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:1)

幸运的是如果没有用户互动,就不可能。 用户必须在设置中将您的应用确认为设备管理员,以便您最多可以将用户导航到设置。

如果应用程序可以在没有用户交互的情况下激活设备管理员(设备管理员具有相当大的权限),那将是一个巨大的安全风险。

答案 1 :(得分:-2)

可以通过以下方式实现:
1)使用add shell命令:

adb shell dpm set-device-admin --user 0 com.mydeviceadmin/.deviceAdminReceiver  

2)以编程方式:

Runtime.getRuntime().exec("dpm set-device-admin --user 0 com.mydeviceadmin/.deviceAdminReceiver")  

已通过Android 6.0测试。无需root。

大卫

答案 2 :(得分:-2)

Intent intent = new Intent(DevicePolicyManager. ACTION_ADD_DEVICE_ADMIN);
ComponentName compName = new ComponentName(getApplicationContext(), MyAdmin.class);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, compName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Bấm zô nút đồng ý(ACTIVE á)");
startActivityForResult(intent, RESULT_ENABLE);

=> 我可以向 android 5.1 授予权限,但不能在 6.0 及更高版本中授予权限