如何将附加信息传递给 DeviceAdminReceiver?
How to pass extras to 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();
}
}
在接收器中,我希望为 lock extra 得到 true,但它总是 false。那么如何将自定义附加项传递给 DeviceAdminReceiver?提前致谢。
In the receiver, I expect to get true for lock extra, but it's always false.
您正在将额外的内容放在开始 activity 的 Intent
上。这不会转移到任意其他 Intent
个对象。
So how can I pass custom extras to DeviceAdminReceiver?
你不能。您将需要以其他方式解决您的问题(例如,SharedPreferences
)。
您可以使用 DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE 传递包含您的值的 PersistableBundle。
然后,可以在DeviceAdminReceiver的子类的onProfileProvisioningComplete(context: Context, intent: Intent)中取这个值
我使用下面的代码激活设备管理员成功。
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();
}
}
在接收器中,我希望为 lock extra 得到 true,但它总是 false。那么如何将自定义附加项传递给 DeviceAdminReceiver?提前致谢。
In the receiver, I expect to get true for lock extra, but it's always false.
您正在将额外的内容放在开始 activity 的 Intent
上。这不会转移到任意其他 Intent
个对象。
So how can I pass custom extras to DeviceAdminReceiver?
你不能。您将需要以其他方式解决您的问题(例如,SharedPreferences
)。
您可以使用 DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE 传递包含您的值的 PersistableBundle。
然后,可以在DeviceAdminReceiver的子类的onProfileProvisioningComplete(context: Context, intent: Intent)中取这个值