适用于设备的 Android Management API 更改策略
Posted
技术标签:
【中文标题】适用于设备的 Android Management API 更改策略【英文标题】:Android Management API change Policy for device 【发布时间】:2019-03-27 17:20:25 【问题描述】:我在我的企业中创建了 2 个策略。
我想在不重新注册的情况下将一台设备切换到另一台策略。
我尝试使用带有以下 JSON 的 android 管理企业 devices.patch
"policyName": "policy2"
this link
当我执行此命令时,我总是收到以下错误消息:
"error":
"code": 400,
"message": "Illegal state transition from ACTIVE to DEVICE_STATE_UNSPECIFIED",
"status": "INVALID_ARGUMENT"
有人知道如何在不擦除设备的情况下更改策略吗?
【问题讨论】:
【参考方案1】:确实可以在不重新注册的情况下更改设备的策略,而且您离解决方案不远了。
您收到此错误是因为您隐式尝试更改 Device
资源的其他字段(尤其是 state
字段),而不是在您发送到 devices.patch
的资源中设置它们。
你有两个选择:
将devices.patch
中的updateMask
设置为"policyName"
,告诉API您只想更改policyName
字段。
调用devices.get
以获取当前的Device
资源,然后发回整个资源,仅将policyName
字段更改为devices.patch
。
最好使用updateMask
,因为它执行原子读取-修改-写入。
【讨论】:
【参考方案2】:正如 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()
【讨论】:
【参考方案3】:我为我的问题找到了解决方案:
"policyName": "policy2" , "state":"active"
【讨论】:
以上是关于适用于设备的 Android Management API 更改策略的主要内容,如果未能解决你的问题,请参考以下文章
正在尝试在 Android 设备上检索位置...适用于模拟器,但不适用于真实设备
使用适用于 Android 的 CastCompanionLibrary 扫描设备