![](/img/trans.png)
[英]Android Management api - Is it possible to get device id/name in android app? ( Device specific QR is not possible, Generating Policy specific
[英]Android Management API change Policy for device
我在我的企业中创建了 2 个策略。
我想在不重新注册的情况下将一台设备切换到另一项策略。
我尝试使用 android management enterprises devices.patch 与以下 JSON
{ "policyName": "policy2" }
当我执行此命令时,我总是收到以下错误消息:
{
"error": {
"code": 400,
"message": "Illegal state transition from ACTIVE to DEVICE_STATE_UNSPECIFIED",
"status": "INVALID_ARGUMENT"
}
}
有谁知道如何在不擦除设备的情况下更改设备的策略?
确实可以在不重新注册的情况下更改设备的策略,并且您距离解决方案不远。
您收到此错误是因为您隐式尝试更改Device
资源的其他字段(特别是state
字段),方法是不在您在devices.patch
发送的资源中设置它们。
您有两种选择:
将devices.patch
的updateMask
设置为"policyName"
,告诉API您只想更改policyName
字段。
调用devices.get
来获取当前的Device
资源,然后发送回整个资源,只将policyName
字段更改为devices.patch
。
使用updateMask
是首选,因为它执行原子读 - 修改 - 写。
正如弗雷德所说, 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”}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.