配對裝置設定檔

隨附裝置設定檔是 Android 12 中推出的一項功能,可讓隨附應用程式要求一組專屬於隨附裝置類型 (例如智慧手錶) 的權限。使用隨附裝置設定檔可簡化註冊流程,因為應用程式可向使用者在行動裝置上顯示單一提示,要求一組已定義的權限,而非個別要求多個權限。這樣一來,就能提供更流暢的設定體驗,並提高隨附應用程式的選擇加入率。

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

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

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

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

裝置行為

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

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

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