開發人員指南

Android 的企業功能結合了裝置、應用程式和管理功能,機構可以提供安全、靈活的整合式 Android 行動管理平台,根據預設,Android 應用程式與 Android 的企業功能相容。不過,您還可以使用其他功能,讓應用程式在受管理的 Android 裝置上發揮最佳效能:

  • 工作資料夾相容性:修改 Android 應用程式,確保應用程式在受管理的裝置上正常運作。
  • 受管理的設定:修改應用程式,讓 IT 管理員能選擇為應用程式指定自訂設定。
  • 專用裝置:為應用程式進行最佳化調整,讓應用程式以資訊站的形式在 Android 裝置上部署。
  • 單一登入 (SSO):簡化登入程序,讓使用者在受管理的 Android 裝置上登入不同應用程式。

必要條件

  1. 您成功建立了一個 Android 應用程式。
  2. 您現在可以按照機構需求修改應用程式。
  3. 最低版本:Android 5.0 Lollipop 建議版本:Android 6.0 Marshmallow 以上版本。

注意:Android 的企業功能已內建於多數 Android 5.0 裝置中;不過,Android 6.0 以上版本提供額外功能,特別是與專用裝置有關的功能。

工作資料夾

您可以透過工作資料夾管理使用者的業務資料和應用程式。工作資料夾是受管理的公司設定檔,與 Android 裝置的主要使用者帳戶相關聯。工作資料夾能夠安全地將工作應用程式與資料與個人應用程式與資料區隔開來。這個工作資料夾會與個人資料夾位於獨立的容器中,由使用者控管。這些獨立的設定檔可讓機構管理重要的業務資料,但同時又能讓使用者自行控管使用者裝置上的所有其他內容。如要深入瞭解最佳做法,請參閱工作資料夾指南。如需這些最佳做法的總覽,請參閱下文。

工作資料夾的主要功能

  • 獨立且保護設定檔
  • Google Play 管理版應用程式發布功能
  • 將識別證的工作區隔開來
  • 管理員控管的僅設定檔管理功能

Android 5.0 以上版本的工作資料夾優點

  • 完整裝置加密
  • 如果裝置上有個人設定檔和工作資料夾,兩個設定檔各有一個 Android 應用程式套件 (APK)
  • 裝置政策控制器 (DPC) 只能使用工作資料夾
  • 透過 DevicePolicyManager 類別管理裝置

工作資料夾的注意事項

防止意圖在設定檔之間失敗

您無法知道哪些意圖可在設定檔之間跨越,以及哪些意圖遭到封鎖。要確定這一點的唯一方法就是進行測試。應用程式啟動活動之前,請先呼叫 Intent.resolveActivity(),確認要求已解決。

  • 如果傳回 null,則要求不會解析。
  • 如果傳回內容,系統就會顯示意圖可解析,且可以安全傳送意圖。

注意:如需詳細的測試操作說明,請參閱「避免失敗的意圖」。

在不同的設定檔之間分享檔案

部分開發人員會使用 URI 在 Android 中標記檔案路徑。不過,由於存在工作資料夾時會有不同的檔案系統,因此建議採取以下做法:

使用:
內容 URI
  • 「內容 URI」包含特定檔案的授權、路徑和 ID。您可以使用 FileProvider 子類別來產生這項操作。瞭解詳情
  • 使用意圖分享並授予內容 URI 存取權。權限只能透過 Intent 在個人資料邊界傳遞。如果您使用 Context.grantUriPermission() 將檔案存取權授予其他應用程式,則系統只會針對同一個設定檔中的應用程式授予這項權限。
請勿使用:
檔案 URI
  • 含有檔案在裝置儲存空間中的絕對路徑。
  • 一個設定檔有效的檔案路徑 URI 對另一個設定檔無效。
  • 如果您將檔案 URI 附加至意圖,處理常式就無法存取其他設定檔中的檔案。

後續步驟:應用程式支援受管理的設定檔後,請在工作資料夾中進行測試。請參閱「測試應用程式」。

實作受管理的設定

「受管理設定」是一組操作說明,IT 管理員可以使用這組操作說明,以特定方式管理使用者的行動裝置。下列操作說明適用於各種 EMM,管理員可從遠端設定使用者手機上的應用程式。

如果您開發的是企業或政府的應用程式,請務必遵守產業的特定規定。有了受管理的設定,IT 管理員即可從遠端指定設定,並對使用者的 Android 應用程式強制執行政策,例如:

  • 設定應用程式是否可透過行動數據/3G 或僅限 Wi-Fi 同步處理資料
  • 允許或封鎖網路瀏覽器上的網址
  • 調整應用程式的電子郵件設定
  • 啟用或停用列印功能
  • 管理書籤

實作代管設定的最佳做法

設定受管理設定指南提供建構及部署代管設定的相關資訊。閱讀這份說明文件後,請參閱下列建議,尋求其他指引。

初次啟動應用程式時

啟動應用程式後,即可查看這個應用程式是否已在「onStart()」或「onResume()」中完成受管理設定。此外,您也可以瞭解您的應用程式是受管理或未代管。舉例來說,如果 getApplicationRestrictions() 傳回:

  • 一組應用程式專屬限制:您無需使用者輸入就能直接設定受管理的設定。
  • 空白套件:應用程式的行為如同非受管 (例如應用程式在個人設定檔中的行為)。
  • 包含單一鍵/值組合且 KEY_RESTRICTIONS_PENDING 設為 true 的組合:您的應用程式受到管理,但 DPC 設定有誤。您應封鎖此使用者,不讓對方使用您的應用程式,並引導他們前往 IT 管理員。

監聽受管理設定的異動

IT 管理員可以隨時變更受管理的設定,以及要對使用者強制執行的政策。因此,建議您確保應用程式可接受受管理設定的新限制,如下所示:

  • 啟動時擷取限制:應用程式應在 onStart()onResume() 中呼叫 getApplicationRestrictions(),並與舊版限制進行比較,確認是否需要變更。
  • 在跑步時聆聽:檢查新限制是否在執行中的活動或服務中動態註冊 ACTION_APPLICATION_RESTRICTIONS_CHANGED。這個意圖只會傳送給動態註冊的事件監聽器,不會傳送給應用程式資訊清單中宣告的事件監聽器。
  • 在未執行時取消註冊:在 onPause() 中,您應該取消註冊 ACTION_APPLICATION_RESTRICTIONS_CHANGED 的廣播訊息。

專用裝置

專用裝置是單一用途的資訊站裝置,例如數位電子看板、票券列印資訊站或結帳註冊器。

當 Android 裝置設為專屬裝置時,使用者會看到已鎖定在螢幕畫面上的應用程式,但沒有任何「主畫面」或「最近使用的應用程式」按鈕可逸出應用程式。此外,專用裝置也可以設定為顯示一組應用程式,例如包含媒體庫目錄和網路瀏覽器的程式庫資訊站。

如需操作說明,請參閱「專用裝置」。

透過 Chrome 自訂分頁設定單一登入服務

企業使用者通常在裝置上使用多個應用程式,且偏好一次登入來存取所有工作應用程式。一般而言,使用者是透過 WebView 登入。不過,您無法這樣做的原因有以下幾個:

  1. 使用者經常需要使用相同的憑證登入多次。WebView 解決方案通常並非真正的單一登入 (SSO) 體驗。
  2. 目前有安全性風險,包括惡意應用程式檢查 Cookie 或插入 JavaScript® 存取使用者憑證。即使值得信賴的開發人員仰賴潛在的惡意第三方 SDK,也面臨風險。

這兩個問題的解決方式是使用瀏覽器自訂分頁 (而不是 WebView) 來驗證使用者。這可確保驗證程序:

  • 發生在安全環境 (系統瀏覽器) 中,主機應用程式無法檢查內容。
  • 具備共用 Cookie 狀態,確保使用者只需登入一次。

相關規定

自訂分頁支援 API 級別 15 (Android 4.0.3)。您需要有支援的瀏覽器 (例如 Chrome) 才能使用自訂分頁。 Chrome 45 以上版本會以 Chrome 自訂分頁的形式實作這項功能。

如何使用自訂分頁導入單一登入 (SSO) 服務?

Google 已開放原始碼使用自訂分頁的 OAuth 用戶端程式庫,讓這個程式庫成為 OpenID Foundation 的 OpenID Connect 工作群組。如要透過 AppAuth 程式庫設定單一登入 (SSO) 功能的自訂分頁,請參閱 GitHub 上的說明文件和程式碼範例

測試應用程式

開發完應用程式後,建議您在工作資料夾和全代管裝置上進行測試。請參閱下列指示。

使用 Test DPC 測試 Android 應用程式

我們提供測試 DPC 應用程式,協助 Android 開發人員在企業環境中測試應用程式。透過測試 DPC,您可以在裝置上設定 EMM 政策或受管理的設定值,就像由機構透過 EMM 管理裝置一樣。如要在裝置上安裝 Test DPC,請選擇下列其中一種方法:

如要進一步瞭解如何設定測試 DPC,請參閱以下操作說明和測試 DPC 使用手冊

佈建工作資料夾

如要在工作資料夾中測試應用程式,您必須先在裝置上使用 Test DPC 應用程式佈建工作資料夾,如下所示:

  1. 在裝置上安裝測試 DPC。
  2. 在 Android 啟動器中,輕觸「設定 Test DPC」應用程式圖示。
  3. 按照畫面上的指示操作。
  4. 在裝置上安裝應用程式,然後進行測試,看看應用程式在工作資料夾中的運作情形。

Android 會建立工作資料夾,並在工作資料夾中安裝測試 DPC 副本。您可以使用這個測試 DPC 的工作標記執行個體,設定工作資料夾中的政策和受管理設定。如要進一步瞭解如何設定開發用的工作資料夾,請參閱開發人員指南的工作資料夾

佈建全代管裝置

機構會使用全代管裝置,因為這類裝置可在裝置上執行完整的管理政策。如要佈建全代管裝置,請按照下列步驟操作:

  1. 在裝置上安裝測試 DPC。
  2. 確認裝置上沒有其他使用者或工作資料夾。
  3. 確認裝置上沒有帳戶。
  4. 在終端機中執行下列 Android Debug Bridge (adb) 指令:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. 完成裝置擁有者的佈建後,您就可以在該裝置中測試您的應用程式。建議您特別測試受管理的設定意圖在裝置上的運作方式。

您也可以使用其他佈建方法,請參閱 Test DPC 使用手冊。如要瞭解 IT 管理員通常如何註冊及佈建 Android 裝置,請參閱「佈建裝置」。

端對端測試

完成上述環境中的應用程式測試後,建議您在端對端實際工作環境中測試應用程式。這個程序包含客戶需要採取哪些步驟,才能在其機構中部署應用程式,包括:

  • 透過 Play 發行應用程式
  • 伺服器端代管設定
  • 伺服器端設定檔政策控制項

您必須存取 EMM 控制台才能完成端對端測試。最簡單的方法是向 EMM 要求測試控制台。取得存取權後,請完成以下工作:

  1. 使用新的 ApplicationId 建立應用程式的測試版本。
  2. 聲明受管理的 Google 網域,並繫結至您的 EMM。如果您已有與 EMM 繫結的測試網域,可能需要將其解除繫結,才能使用偏好的 EMM 進行測試。如要瞭解解除繫結的步驟,請洽詢 EMM。
  3. 針對受管理的 Google 網域,將應用程式發布至私人管道
  4. 您可以使用 EMM 控制台和 EMM 應用程式執行下列操作:
    1. 設定工作裝置。
    2. 發行應用程式。
    3. 調整受管理的設定。
    4. 設定裝置政策。

這項程序會因您的 EMM 而異。詳情請參閱 EMM 說明文件。恭喜!您已完成這些步驟,並確認您的應用程式對企業使用者運作良好。