您好我想在应用程序启动时启动/激活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。
有谁知道我该怎么做?
感谢。
答案 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 及更高版本中授予权限