發布應用程式

Google Play EMM API 支援下列公開和私人應用程式的發布方法:

從 Google Play 管理版商店手動安裝應用程式

您可以在 Devicepolicy 中定義使用者可以安裝哪些應用程式,並呼叫 Devices.update 進行設定。佈建新裝置時,建議您先設定政策,再將 Google Play 管理版帳戶新增至裝置,否則系統不會在將帳戶新增至裝置後一段時間套用政策。

Play 管理版商店行為是由 policy.productAvailabilityPolicy 的值定義:

  • all:Play 商店中的所有公開應用程式皆可使用。
  • whitelist:只能使用「policy.productPolicy」中列出的應用程式。

在這兩種情況下,系統預設會將 policy.productPolicy 中的所有應用程式加入企業的商店版面配置。選取 whitelist 時,企業的商店版面配置是管理版 Play 商店的首頁,只要選取 all,即可在「工作應用程式」分頁中存取。您可以嵌入 Google Play 管理版 iframe 來允許客戶自訂企業的商店版面配置 (請參閱「使用 Google Play 管理版 iframe 整理應用程式」)。

從遠端安裝應用程式到使用者的裝置上

如要從遠端在使用者的裝置上安裝 (也稱為推送安裝) 應用程式,請在 Devicepolicy 中設定 policy.productPolicy.autoInstallPolicy。佈建新裝置時,建議您先設定政策,再將 Google Play 管理版帳戶新增至裝置,否則系統不會在將帳戶新增至裝置後一段時間套用政策。

autoInstallMode 可設為:

  • doNotAutoInstall:系統不會自動安裝應用程式。
  • autoInstallOnce:應用程式會自動安裝一次,如果使用者解除安裝應用程式,就不會再次安裝。
  • forceAutoInstall:應用程式會自動安裝,如果使用者解除安裝應用程式,系統會再次安裝該應用程式。在受管理的裝置上,DPC 應使用 DevicePolicyManager.setUninstallBlocked 封鎖解除安裝程序。

如果發生失敗 (連線中斷、儲存空間不足等),安裝作業會自動重試,直到成功為止。系統會套用指數輪詢重試策略,避免在無法復原的故障時浪費電力和資料。

安裝優先順序

您可以設定 autoInstallPriority,以選擇安裝順序。優先順序須為無正負號整數,且預設值為 0。應用程式會以遞增順序或優先順序安裝,也就是說,系統會優先安裝優先順序值較低的應用程式。

安裝限制

您可以設定 autoInstallConstraint,藉此設定各個應用程式的安裝限制,以便控管裝置在安裝期間所需的狀態:

  • 裝置是否應連上 Wi-Fi 網路
  • 裝置是否應該充電
  • 以及裝置是否應為閒置狀態 (使用者未主動使用)。

如果未立即符合限制,受影響的安裝作業就會排入佇列,直到符合限制條件為止。

autoInstallConstraint 中,AND 規則會在欄位之間套用。舉例來說,在下列 autoInstallConstraint 中,裝置必須充電,並連線至非計量付費網路 (例如 Wi-Fi),才能安裝應用程式:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

在新佈建的裝置上自動安裝應用程式

當裝置首次佈建時,Google Play EMM API 會傳送 NewDeviceEvent 通知。如要自動將安裝應用程式推送到新佈建的裝置,請監聽 NewDeviceEvent 通知。從每個 NewDeviceEvent 中擷取 userIddeviceId,然後呼叫 Devices.update 來設定該裝置的政策。

如要瞭解如何訂閱 EMM 通知,請參閱「設定 EMM 通知」。

發布應用程式以便進行封閉測試

封閉測試可讓應用程式開發人員向信任的使用者,收集有關早期版本應用程式的意見回饋。開發人員可以在 Google Play 管理中心設定封閉測試。您可以使用 Play EMM API,讓 IT 管理員將應用程式封閉版本 (也稱為測試群組) 提供給特定使用者。企業客戶不僅能測試第三方應用程式,還可測試內部開發的私人應用程式。

符合資格的應用程式

在開發人員將應用程式新增至封閉測試人員清單之前,應用程式必須符合下列條件:

  • 應用程式的正式版已在 Google Play 上發布。
  • 在 Google Play 管理中心的「進階設定」頁面中,「Google Play 管理版」已啟用。
  • 任何封閉版本的應用程式都符合版本代碼規定

將企業加入封閉測試

應用程式開發人員可將企業加入採用封閉 Alpha 版測試使用 Google 網路論壇的 Alpha 版測試方法的測試。如需操作說明,請參閱設定公開測試、封閉測試或內部測試指南。開發人員必須輸入每個參與企業的機構 ID (也稱為「企業 ID」)。IT 管理員可以按照下列步驟,將機構 ID 提供給第三方應用程式開發人員:

  1. 登入 Google Play 管理版商店
  2. 按一下「管理設定」
  3. 複製機構資訊方塊中的機構 ID 字串,然後將機構 ID 傳送給開發人員。

私人應用程式的其他規定

如果是私人應用程式,開發人員也必須在應用程式的「進階設定」頁面的「Google Play 管理版」分頁中,新增每個合作企業的機構 ID。如需操作說明,請參閱「發布私人應用程式」。

將封閉測試群組發布給使用者

如要擷取企業針對特定應用程式可用的測試群組清單,請呼叫 Products.get。回應中包含的 appTracks[] 清單包含每個應用程式可用的測試群組。appTracks[].trackAlias 是使用者可理解的測試群組名稱,可以在 EMM 控制台中顯示,而 appTracks[].trackId 則是機器可讀取的測試群組 ID。

如要允許使用者查看應用程式的封閉測試群組,請在 Devicepolicy 中設定 policy.productPolicy[].trackIds[]。如果裝置有多個測試群組,系統就會安裝版本代碼最高的可用版本。

在特定情境中, trackId 會自動從 Products.get 呼叫中移除,例如:

  • 測試群組的 APK 已升級至其他測試群組或正式版群組。
  • 正式版會更新至高於測試群組的版本。
  • 開發人員停止測試群組。

追蹤付費應用程式授權

如果是付費應用程式,Grouplicenses 物件會追蹤企業擁有的授權數量,以及已使用的授權數量。您可以呼叫 Grouplicenses.get 以取得應用程式的授權詳細資料。

企業必須擁有該應用程式的授權,才能在裝置上安裝付費應用程式。如果有授權,系統會在裝置上安裝應用程式,並建立 Entitlements 物件。Entitlements 物件會將授權連結至使用者,並減少應用程式的可用授權數量。如果沒有可用授權,則應用程式安裝失敗,且系統不會建立任何 Entitlements 物件。

免費發布的應用程式無法使用 GrouplicensesEntitlements 物件。