Android 12 中引入的配套裝置設定檔是一項功能,允許配套應用程式請求一組特定於配套裝置(例如智慧型手錶)類型的權限。使用配套設備設定檔允許應用程式向行動裝置上的使用者顯示單一提示以請求一組定義的權限,而不是單獨請求權限的多個提示,從而簡化了註冊過程。這可以提供更簡化的設定體驗以及更好的配套應用程式選擇率。
要使用配套設備設定文件,配套應用程式必須滿足以下要求:
- 管理配套設備(例如智慧手錶)。
- 擁有需要為配套設備設定檔定義的所有權限的應用程式功能或呼叫 Android API。
每個配套裝置設定檔都對應一個 Android 角色。有關每個設定檔的權限和相應 Android 角色的更多信息,請參閱第三方應用程式的配套裝置設定檔。
有關配套設備的更多信息,請參閱配套設備配對。
設備行為
本節介紹使用配套設備設定檔時的設備行為。
當使用者接受應用程式建立與配套裝置關聯的請求時, CompanionDeviceManager
(CDM) 服務會將裝置設定檔角色(例如手錶)指派給配套應用程序,並授予為該指定設定檔角色定義的所有權限。圖 1 顯示了請求COMPANION_DEVICE_WATCH
裝置設定檔權限的應用程式範例。
圖 1.請求手錶設備設定檔權限的對話框。
當使用者清除「設定」中的套件資料或刪除配套應用程式中的所有裝置時,CDM 會在該應用程式未在前台執行且未執行前台服務時撤銷設定檔。撤銷設定檔也會撤銷該設定檔的所有定義的權限。
使用者接受應用程式授予特定裝置設定檔權限的請求後,使用者可以撤銷已授予的各個權限。當使用者撤銷權限時,應用程式仍與配套設備關聯,但某些功能可能會變得不可用。如果應用程式需要該權限才能運行,則應用程式必須透過正常的權限請求來請求該權限。
第三方應用程式的配套設備配置文件
觀看簡介
Android 12 中引入了手錶設定檔。
下表描述了COMPANION_DEVICE_WATCH
設備設定檔的定義權限以及使用它們的要求。
權限 | 配套應用程式和設備要求 |
---|---|
通知BIND_NOTIFICATION_LISTENER_SERVICE |
|
Phone |
|
SMS |
|
Contacts |
|
Calendar |
|
Nearby devices |
|
eSIM provisioning |
|
Managing ongoing calls |
|
眼鏡簡介
Android 14 中引進了 Glasses 設定檔。
下表描述了COMPANION_DEVICE_GLASSES
設備設定檔的定義權限以及使用它們的要求。
權限 | 配套應用程式和設備要求 |
---|---|
通知BIND_NOTIFICATION_LISTENER_SERVICE 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 測試。