隨附裝置設定檔是 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) |
|
Phone |
|
SMS |
|
Contacts |
|
Calendar |
|
Nearby devices |
|
eSIM provisioning |
|
Managing ongoing calls |
|
眼鏡設定檔
眼鏡設定檔已在 Android 14 中推出。
下表說明 COMPANION_DEVICE_GLASSES
裝置設定檔的定義權限,以及使用這些權限的要求。
權限 | 隨附應用程式和裝置需求 |
---|---|
通知POST_NOTIFICATIONS |
|
Phone |
|
SMS |
|
Contacts |
|
Microphone |
|
Nearby devices |
|
Managing ongoing calls |
|
實作
如果第三方開發人員實作了要求 DEVICE_PROFILE_WATCH
設定檔的隨附應用程式,請執行以下操作:
呼叫
setDeviceProfile
方法。建構
AssociationRequest
時,傳入設定檔 (例如DEVICE_PROFILE_WATCH
)。
裝置製造商略過顯示使用者同意對話方塊
如果裝置製造商為特定裝置實作隨附應用程式,請使用下列必要的 Android 系統設定來認證隨附應用程式,讓應用程式可略過向使用者顯示使用者同意對話方塊。
使用下列指令擷取憑證:
keytool -printcert -jarfile PATH/TO/APK
請參考設定檔中的以下範例輸入內容,替換套件名稱和憑證:
<!-- 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>
使用
AssociationRequest
向單一隨附裝置提出關聯要求。
驗證
如要測試隨附裝置設定檔功能的行為,請使用 cts/tests/tests/companion/
中的 CTS 測試。