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