Android 管理 API 更改设备策略
Android Management API change Policy for device
我在我的企业中创建了 2 个策略。
我想在不重新注册的情况下将一台设备切换到另一项策略。
我尝试使用 android 管理企业 devices.patch 与以下 JSON
{ "policyName": "policy2" }
当我执行此命令时,我总是收到以下错误消息:
{
"error": {
"code": 400,
"message": "Illegal state transition from ACTIVE to DEVICE_STATE_UNSPECIFIED",
"status": "INVALID_ARGUMENT"
}
}
有人知道如何在不擦除设备的情况下更改设备的策略吗?
确实可以在不重新注册设备的情况下更改设备的策略,而且您离解决方案不远了。
您收到此错误是因为您隐式尝试更改 Device
资源的其他字段(特别是 state
字段),而不是在您在 [=12] 中发送的资源中设置它们=].
您有两个选择:
将devices.patch
中的updateMask
设置为"policyName"
,告诉API你只想改变policyName
字段.
调用devices.get
获取当前Device
资源,然后发回整个资源,只有policyName
字段改成devices.patch
.
最好使用 updateMask
,因为它执行原子读取-修改-写入。
正如 Fred 提到的,updateMask 是首选方法。下面是如何在 Google colab
中使用 updateMask 方法的示例
swap_result = androidmanagement.enterprises().devices().patch(
name='enterprises/ENTERPRISE_NAME/devices/DEVICE_ID', updateMask='policyName', body={ "policyName": "enterprises/ENTERPRISE_NAME/policies/NEW_POLICY_NAME"}).execute()
我找到了解决问题的方法:
{ "policyName": "policy2" , "state":"active"}
我在我的企业中创建了 2 个策略。
我想在不重新注册的情况下将一台设备切换到另一项策略。
我尝试使用 android 管理企业 devices.patch 与以下 JSON
{ "policyName": "policy2" }
当我执行此命令时,我总是收到以下错误消息:
{
"error": {
"code": 400,
"message": "Illegal state transition from ACTIVE to DEVICE_STATE_UNSPECIFIED",
"status": "INVALID_ARGUMENT"
}
}
有人知道如何在不擦除设备的情况下更改设备的策略吗?
确实可以在不重新注册设备的情况下更改设备的策略,而且您离解决方案不远了。
您收到此错误是因为您隐式尝试更改 Device
资源的其他字段(特别是 state
字段),而不是在您在 [=12] 中发送的资源中设置它们=].
您有两个选择:
将
devices.patch
中的updateMask
设置为"policyName"
,告诉API你只想改变policyName
字段.调用
devices.get
获取当前Device
资源,然后发回整个资源,只有policyName
字段改成devices.patch
.
最好使用 updateMask
,因为它执行原子读取-修改-写入。
正如 Fred 提到的,updateMask 是首选方法。下面是如何在 Google colab
中使用 updateMask 方法的示例swap_result = androidmanagement.enterprises().devices().patch(
name='enterprises/ENTERPRISE_NAME/devices/DEVICE_ID', updateMask='policyName', body={ "policyName": "enterprises/ENTERPRISE_NAME/policies/NEW_POLICY_NAME"}).execute()
我找到了解决问题的方法:
{ "policyName": "policy2" , "state":"active"}