配對裝置設定檔

Android 12 推出的隨附裝置設定檔功能,可讓隨附應用程式要求一組特定於隨附裝置類型 (例如智慧手錶) 的權限。使用隨附裝置設定檔,應用程式就能在行動裝置上向使用者顯示單一提示,要求一組定義的權限,而非個別要求權限的多個提示,可簡化註冊程序。這有助於簡化設定流程,並提高隨附應用程式的加入率。

如要使用隨附裝置設定檔,隨附應用程式必須符合下列規定:

  • 管理隨附裝置 (例如智慧手錶)。
  • 應用程式功能或呼叫 Android API 時,需要為隨附裝置設定檔定義的所有權限。

每個隨附裝置設定檔都會對應一個 Android 角色。如要進一步瞭解每個設定檔的權限和對應的 Android 角色,請參閱第三方應用程式的隨附裝置設定檔

如要進一步瞭解隨附裝置,請參閱「配對隨附裝置」。

裝置行為

本節說明使用隨附裝置設定檔時的裝置行為。

使用者接受應用程式要求,與隨附裝置建立關聯時,CompanionDeviceManager (CDM) 服務會將裝置設定檔角色 (例如手錶) 指派給隨附應用程式,並授予該特定設定檔角色定義的所有權限。圖 1 顯示應用程式要求 COMPANION_DEVICE_WATCH 裝置設定檔權限的範例。

觀看裝置設定檔對話方塊提示

圖 1. 要求智慧手錶裝置設定檔權限的對話方塊。

如果使用者在「設定」中清除套件資料,或在隨附應用程式中移除所有裝置,當應用程式未在前台執行或未執行前台服務時,CDM 就會撤銷設定檔。撤銷設定檔也會撤銷該設定檔的所有已定義權限。

使用者接受應用程式要求,授予特定裝置設定檔的權限後,可以撤銷已授予的個別權限。使用者撤銷權限後,應用程式仍會與隨附裝置建立關聯,但部分功能可能無法使用。如果應用程式必須取得權限才能運作,就必須透過正常的權限要求要求權限。

第三方應用程式的隨附裝置設定檔

智慧手錶設定檔

Android 12 推出手錶設定檔。

下表說明 COMPANION_DEVICE_WATCH 裝置設定檔的定義權限,以及使用這些權限的規定。

權限 隨附應用程式和裝置需求
通知

POST_NOTIFICATIONS (added in Android 15)
  • 透過藍牙和/或 Wi-Fi 連線
  • 螢幕可顯示通知 (不包括使用觸覺回饋而非螢幕的裝置)
  • 為使用者提供通知體驗,例如在隨附裝置螢幕上顯示手機通知。
  • 發布裝置管理的手機通知。例如手錶連線時,或啟用特定功能時。
Phone
  • 透過藍牙和/或 Wi-Fi 連線
  • 內建麥克風和喇叭,可進行語音對話
  • 螢幕會顯示來電者資訊
  • 提供使用者可撥打電話的體驗 (電話通話由隨附應用程式橋接)
SMS
  • 透過藍牙和/或 Wi-Fi 連線
  • 螢幕會顯示簡訊
  • 提供使用者可見的簡訊體驗
Contacts
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在通話或傳訊體驗中使用聯絡資訊
Calendar
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在手錶上提供面向使用者的日曆體驗
Nearby devices
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在手錶上提供配對/連線的使用者體驗
eSIM provisioning
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 提供使用者介面,讓使用者在手錶上管理電信業者提供的服務
Managing ongoing calls
  • 透過藍牙和/或 Wi-Fi 連線
  • 內建麥克風和喇叭,可進行語音對話
  • 螢幕會顯示來電者資訊
  • 提供使用者可撥打電話的體驗 (電話通話由隨附應用程式橋接)

眼鏡設定檔

Android 14 推出眼鏡設定檔。

下表說明 COMPANION_DEVICE_GLASSES 裝置設定檔的定義權限,以及使用這些權限的規定。

權限 隨附應用程式和裝置需求
通知

POST_NOTIFICATIONS
  • 透過藍牙和/或 Wi-Fi 連線
  • 螢幕可顯示通知 (不包括使用觸覺回饋而非螢幕的裝置)
  • 為使用者提供通知體驗,例如在隨附裝置螢幕上顯示手機通知。
  • 在裝置管理方面發布手機通知,例如眼鏡裝置連線或啟用特定功能時。
Phone
  • 透過藍牙和/或 Wi-Fi 連線
  • 內建麥克風和喇叭,可進行語音對話
  • 螢幕會顯示來電者資訊
  • 提供使用者可撥打電話的體驗 (電話通話由隨附應用程式橋接)
SMS
  • 透過藍牙和/或 Wi-Fi 連線
  • 螢幕會顯示簡訊
  • 提供使用者可見的簡訊體驗
Contacts
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在通話或傳訊體驗中使用聯絡資訊
Microphone
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在眼鏡上提供使用者可見的麥克風體驗
Nearby devices
  • 透過藍牙和/或 Wi-Fi 連線
  • 有螢幕
  • 在眼鏡上提供面向使用者的配對/連線體驗
Managing ongoing calls
  • 透過藍牙和/或 Wi-Fi 連線
  • 內建麥克風和喇叭,可進行語音對話
  • 螢幕會顯示來電者資訊
  • 提供使用者可撥打電話的體驗 (電話通話由隨附應用程式橋接)

實作

如果第三方開發人員導入的隨附應用程式會要求存取DEVICE_PROFILE_WATCH設定檔,請按照下列步驟操作:

  1. 呼叫 setDeviceProfile 方法。

  2. 建構 AssociationRequest 時,傳入設定檔 (例如 DEVICE_PROFILE_WATCH)。

如果裝置製造商要為特定裝置實作隨附應用程式,請使用下列必要 Android 系統設定認證隨附應用程式,讓應用程式略過顯示使用者同意聲明對話方塊。

  1. 使用下列指令擷取憑證:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. 在設定檔中,將套件名稱和憑證替換為下列範例輸入內容:

    <!-- A list of packages managing companion device(s) by the same manufacturers as the main device.
    It will not create the association without prompting if the association has been called multiple
    times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts
    are parallel arrays. -->
    
    <string-array name="config_companionDevicePackages" translatable="false">
        <item>YOUR_COMPANION_APP_PACKAGE_NAME</item>
    </string-array>
    
    <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the
    main device. It will fall back to showing a prompt if the association has been called multiple
    times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage
    are parallel arrays.
    Example: "1A:2B:3C:4D" -->
    
    <string-array name="config_companionDeviceCerts" translatable="false">
        <item>YOUR_COMPANION_APP_CERTIFICATE</item>
    </string-array>
    
  3. 使用 AssociationRequest 向單一隨附裝置提出關聯要求。

驗證

如要測試隨附裝置設定檔功能的行為,請使用 cts/tests/tests/companion/ 中的 CTS 測試。