KC Blog

[Android Enterprise]深入淺出的說明,Android Enterprise 完整研究筆記分享

3 min read
AndroidDev#Android#Enterprise

0. 前導

  • Android Management API 準備工作

    • 這個API主要透過http連線發request 給EMM console 再與EMM裝置下的app作用
    • Android 6.0+ 裝置
    • Gmail 帳號用來綁定 (若遇到企業綁定問題:參考
    • 建立 Cloud Platform Project
    • 啟用 Android Management API
    • 設定指南參考
  • Android Management API 移除 Enterprise 方式

    • 取消裝置配置

      1. 透過http GET 取得enterprise 裝置列表 curl -X GET https://androidmanagement.googleapis.com/v1/{parent=enterprises/*}/devices 上方 {parent=enterprises/*} 帶入格式 enterprises/{enterprise-id} Response :
      1. 透過http DELETE刪除enterprise裝置
        curl -X DELETE https://androidmanagement.googleapis.com/v1/{name=enterprises/*/devices/*} 其中name帶入之前response拿到的name
    • 刪除帳號內的Enterprise

      1. play.google.com/work
      2. 找到Admin Settings
      3. 點三個點的那個圖示
      4. 按下Delete Organization 移除之前創建的enterprise
  • AMAPI SDK 準備工作

    • 導入參考
    • API level 21+ 可用該sdk
    • API level 30+ 需額外在Manifest.xml設定query片段
    • 該SDK主要提供一些功能,讓你直接發送command給Android Device Policy 的app 如:clear指定package資料、監聽command變化,可參考
  • Pub/Sub API 準備工作

1. 開發

  • Android Management API 這裡有兩種方式來創建enterprise : Customer-managed enterprisesEMM-managed enterprises

  • Android Management API 解鎖設備密碼

    • 透過 http Patch enterprises.policies來更新 例如 : curl -X PATCH https://androidmanagement.googleapis.com/v1/{name=enterprises/*/policies/*} -d '{json=ResourcePolicy}'

    前面Patch url {name=enterprises/*/policies/*}帶入對應policyID

    格式為enterprises/{enterpriseId}/policies/{policyId}

    後面request body 的{json=ResourcePolicy}帶入對應的Resource Policy format

     - request body 中有個key passwordRequirements這邊帶入對應的[PasswordRequirements json format](https://developers.google.com/android/management/reference/rest/v1/PasswordRequirements)來設定
     <script src="https://gist.github.com/waitzShigoto/a73f43b9b538e0ea0ecb2e40c337e420.js"></script>
    
  • Android Management API 鎖定底部欄按鈕

    • 一樣透過 http Patch enterprises.policies,發送時,request body 內的SystemNavigation可以設定底部欄位顯示
    • 需在kiosk mode下
    • 文件中提到 要開啟kiosk mode則設定kioskCustomLauncherEnabled的值
    • 目前看到,提供只顯示Home鍵或是不顯示Home + Overview鍵
  • AMAPI SDK 清除指定package的data

    • LocalCommandClientFactory.create(getContext()).issueCommand(createClearAppRequest(packageNames)

    來移除指定package data