配套設備配置文件

Android 12 中引入的配套裝置設定檔是一項功能,允許配套應用程式請求一組特定於配套裝置(例如智慧型手錶)類型的權限。使用配套設備設定檔允許應用程式向行動裝置上的使用者顯示單一提示以請求一組定義的權限,而不是單獨請求權限的多個提示,從而簡化了註冊過程。這可以提供更簡化的設定體驗以及更好的配套應用程式選擇率。

要使用配套設備設定文件,配套應用程式必須滿足以下要求:

  • 管理配套設備(例如智慧手錶)。
  • 擁有需要為配套設備設定檔定義的所有權限的應用程式功能或呼叫 Android API。

每個配套裝置設定檔都對應一個 Android 角色。有關每個設定檔的權限和相應 Android 角色的更多信息,請參閱第三方應用程式的配套裝置設定檔

有關配套設備的更多信息,請參閱配套設備配對

設備行為

本節介紹使用配套設備設定檔時的設備行為。

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

觀看裝置設定檔對話框提示

圖 1.請求手錶設備設定檔權限的對話框。

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

使用者接受應用程式授予特定裝置設定檔權限的請求後,使用者可以撤銷已授予的各個權限。當使用者撤銷權限時,應用程式仍與配套設備關聯,但某些功能可能會變得不可用。如果應用程式需要該權限才能運行,則應用程式必須透過正常的權限請求來請求該權限。

第三方應用程式的配套設備配置文件

觀看簡介

Android 12 中引入了手錶設定檔。

下表描述了COMPANION_DEVICE_WATCH設備設定檔的定義權限以及使用它們的要求。

權限配套應用程式和設備要求
通知

BIND_NOTIFICATION_LISTENER_SERVICE
  • 成為使用藍牙和/或 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 中引進了 Glasses 設定檔。

下表描述了COMPANION_DEVICE_GLASSES設備設定檔的定義權限以及使用它們的要求。

權限配套應用程式和設備要求
通知

BIND_NOTIFICATION_LISTENER_SERVICE

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 測試。