簡體   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