4

您好,我想在不使用 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。我想直接启动设备管理。

谁能知道我该怎么做?

谢谢。

4

3 回答 3

2

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

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

于 2014-01-24T13:16:12.837 回答
-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 及更高版本

于 2021-01-04T11:16:41.357 回答
-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")  

经安卓 6.0 测试。不需要根。

大卫

于 2019-08-25T19:22:42.477 回答