Android 如何向DeviceAdminReceiver传递额外信息?

Android 如何向DeviceAdminReceiver传递额外信息?,android,device-admin,Android,Device Admin,我使用以下代码成功激活设备管理员 public static void goToActivateDeviceAdmin(Context context, ComponentName admin) { Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, admin); i

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

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?提前谢谢

在接收器中,我希望得到锁额外的真实,但它总是假的

你在开始一项活动的
意图
上添加了额外的内容。不会传输到任意其他
意图
对象

那么,我如何将定制的额外功能传递给DeviceAdminReceiver


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

您可以使用DevicePolicyManager.EXTRA\u PROVISIONING\u ADMIN\u EXTRAS\u捆绑包传递包含您的值的PersistableBundle

然后,您可以在DeviceAdminReceiver子类的onProfileProvisioningComplete(context:context,intent:intent)中获取该值