如何将额外内容传递给 DeviceAdminReceiver?



我使用以下代码成功激活设备管理员。

public static void goToActivateDeviceAdmin(Context context, ComponentName admin)
{
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, admin);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, Html.fromHtml(context.getString(R.string.admin_explain)));
intent.putExtra("lock", true); // TODO cannot pass custom extras
context.startActivity(intent);
}

和 DeviceAdminReceiver 的代码:

public static class AdminReceiver extends DeviceAdminReceiver
{
@Override
public void onEnabled(Context context, Intent intent)
{
if (intent.getBooleanExtra("lock", false)) // TODO cannot receive extra
((DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE)).lockNow();
}
}

在接收器中,我希望为额外的锁定得到真,但它总是假的。那么如何将自定义附加功能传递给 DeviceAdminReceiver?提前谢谢。

您可以使用DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE传递包含您的值的 PersistableBundle。

然后,您可以在 DeviceAdminReceiver 的子类的 onProfileProvisioningComplete(上下文:上下文,意图:意图(中获取此值

在接收器中,我希望为额外锁定获得真,但它总是假的。

您正在将额外的内容放在启动活动的Intent上。这不会转移到任意的其他Intent对象。

那么如何将自定义附加功能传递给 DeviceAdminReceiver?

你不能。您将需要以其他方式解决问题(例如,SharedPreferences(。

相关内容

  • 没有找到相关文章

最新更新