Google Play EMM API 支援下列公開和私人應用程式的發布方法:
從 Google Play 管理版商店手動安裝應用程式
您可以在 Device
的 policy
中定義使用者可以安裝哪些應用程式,並呼叫 Devices.update
進行設定。佈建新裝置時,建議您先設定政策,再將 Google Play 管理版帳戶新增至裝置,否則系統不會在將帳戶新增至裝置後一段時間套用政策。
Play 管理版商店行為是由 policy.productAvailabilityPolicy
的值定義:
all
:Play 商店中的所有公開應用程式皆可使用。whitelist
:只能使用「policy.productPolicy
」中列出的應用程式。
在這兩種情況下,系統預設會將 policy.productPolicy
中的所有應用程式加入企業的商店版面配置。選取 whitelist
時,企業的商店版面配置是管理版 Play 商店的首頁,只要選取 all
,即可在「工作應用程式」分頁中存取。您可以嵌入 Google Play 管理版 iframe 來允許客戶自訂企業的商店版面配置 (請參閱「使用 Google Play 管理版 iframe 整理應用程式」)。
從遠端安裝應用程式到使用者的裝置上
如要從遠端在使用者的裝置上安裝 (也稱為推送安裝) 應用程式,請在 Device
的 policy
中設定 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
中擷取 userId
和 deviceId
,然後呼叫 Devices.update
來設定該裝置的政策。
如要瞭解如何訂閱 EMM 通知,請參閱「設定 EMM 通知」。
發布應用程式以便進行封閉測試
封閉測試可讓應用程式開發人員向信任的使用者,收集有關早期版本應用程式的意見回饋。開發人員可以在 Google Play 管理中心設定封閉測試。您可以使用 Play EMM API,讓 IT 管理員將應用程式封閉版本 (也稱為測試群組) 提供給特定使用者。企業客戶不僅能測試第三方應用程式,還可測試內部開發的私人應用程式。
符合資格的應用程式
在開發人員將應用程式新增至封閉測試人員清單之前,應用程式必須符合下列條件:
- 應用程式的正式版已在 Google Play 上發布。
- 在 Google Play 管理中心的「進階設定」頁面中,「Google Play 管理版」已啟用。
- 任何封閉版本的應用程式都符合版本代碼規定。
將企業加入封閉測試
應用程式開發人員可將企業加入採用封閉 Alpha 版測試或使用 Google 網路論壇的 Alpha 版測試方法的測試。如需操作說明,請參閱設定公開測試、封閉測試或內部測試指南。開發人員必須輸入每個參與企業的機構 ID (也稱為「企業 ID」)。IT 管理員可以按照下列步驟,將機構 ID 提供給第三方應用程式開發人員:
- 登入 Google Play 管理版商店。
- 按一下「管理設定」。
- 複製機構資訊方塊中的機構 ID 字串,然後將機構 ID 傳送給開發人員。
私人應用程式的其他規定
如果是私人應用程式,開發人員也必須在應用程式的「進階設定」頁面的「Google Play 管理版」分頁中,新增每個合作企業的機構 ID。如需操作說明,請參閱「發布私人應用程式」。
將封閉測試群組發布給使用者
如要擷取企業針對特定應用程式可用的測試群組清單,請呼叫 Products.get
。回應中包含的 appTracks[]
清單包含每個應用程式可用的測試群組。appTracks[].trackAlias
是使用者可理解的測試群組名稱,可以在 EMM 控制台中顯示,而 appTracks[].trackId
則是機器可讀取的測試群組 ID。
如要允許使用者查看應用程式的封閉測試群組,請在 Device
的 policy
中設定 policy.productPolicy[].trackIds[]
。如果裝置有多個測試群組,系統就會安裝版本代碼最高的可用版本。
在特定情境中, trackId 會自動從 Products.get
呼叫中移除,例如:
- 測試群組的 APK 已升級至其他測試群組或正式版群組。
- 正式版會更新至高於測試群組的版本。
- 開發人員停止測試群組。
追蹤付費應用程式授權
如果是付費應用程式,Grouplicenses
物件會追蹤企業擁有的授權數量,以及已使用的授權數量。您可以呼叫 Grouplicenses.get
以取得應用程式的授權詳細資料。
企業必須擁有該應用程式的授權,才能在裝置上安裝付費應用程式。如果有授權,系統會在裝置上安裝應用程式,並建立 Entitlements
物件。Entitlements
物件會將授權連結至使用者,並減少應用程式的可用授權數量。如果沒有可用授權,則應用程式安裝失敗,且系統不會建立任何 Entitlements
物件。
免費發布的應用程式無法使用 Grouplicenses
和 Entitlements
物件。