设备的 Android 管理 API 更改策略

chr*_*iss 5 policy android android-management-api

我在我的企业中创建了 2 个策略。

我想将一台设备切换到另一项策略,而无需重新注册。

我尝试使用带有以下 JSON 的 android 管理企业 devices.patch

{ "policyName": "policy2" }
Run Code Online (Sandbox Code Playgroud)

这个链接

当我执行此命令时,我总是收到以下错误消息:

{
 "error": {
  "code": 400,
  "message": "Illegal state transition from ACTIVE to DEVICE_STATE_UNSPECIFIED",
  "status": "INVALID_ARGUMENT"
 }
}
Run Code Online (Sandbox Code Playgroud)

有人知道如何在不擦除设备的情况下更改设备策略吗?

Fre*_*red 7

确实可以在不重新注册设备的情况下更改设备的策略,而且您离解决方案不远了。

您收到此错误是因为您通过未在您发送的资源中设置它们来隐式地尝试更改Device资源的其他字段(特别是该state字段)devices.patch

您有两个选择:

  1. updateMaskin设置devices.patch"policyName", 以告诉 API 您只想更改该policyName字段。

  2. 调用devices.get获取当前Device资源,然后将整个资源发回,只有policyName字段更改为devices.patch

使用updateMask更可取,因为它执行原子读-修改-写。


chr*_*iss 1

我找到了解决我的问题的方法:

{ "policyName": "policy2" , "state":"active"}