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



你好,我想在应用程序启动时启动/激活设备管理员,而不使用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。我想直接启动设备管理。

有人知道我该怎么做吗?

谢谢。

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

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

它可以通过以下方式实现:
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进行测试。不需要根。

David

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及以上的上执行此操作

相关内容

  • 没有找到相关文章

最新更新