【问题标题】:Android Management API change Policy for device适用于设备的 Android Management API 更改策略
【发布时间】: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"
 }
}

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

【问题讨论】:

    标签: android policy android-management-api


    【解决方案1】:

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

    您收到此错误是因为您隐式尝试更改 Device 资源的其他字段(尤其是 state 字段),而不是在您发送到 devices.patch 的资源中设置它们。

    你有两个选择:

    1. devices.patch中的updateMask设置为"policyName",告诉API您只想更改policyName字段。

    2. 调用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"}

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-12-24
          • 2019-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多