繁体   English   中英

Android 管理 API 更改设备策略

[英]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发送的资源中设置它们。

您有两种选择:

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

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

如果您从管理 api 测试站点尝试此操作,则将 updateMask 添加为“policyName”

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM