Android 12 中引入的配套設備配置文件是一項功能,它允許配套應用程序請求一組特定於配套設備類型的權限,例如智能手錶。使用配套設備配置文件通過允許應用程序向其移動設備上的用戶顯示單個提示來請求一組定義的權限而不是多個提示單獨請求權限,從而簡化了註冊過程。這可以為配套應用程序提供更簡化的設置體驗和更好的選擇加入率。
配套設備配置文件的使用僅適用於擁有配套設備的設備製造商。要讓配套設備訪問該功能,它們必須滿足要求並獲得批准。
Android 12 中提供了以下配套設備配置文件類型: COMPANION_DEVICE_WATCH
。
有關配套設備的更多信息,請參閱配套設備配對。
設備行為
本節介紹使用配套設備配置文件時的設備行為。
當用戶接受應用程序創建與配套設備關聯的請求時, CompanionDeviceManager
(CDM) 服務會等待配套設備連接,當它連接時,CDM 會將設備配置文件角色(例如,watch)分配給配套應用程序,授予為該指定配置文件角色定義的所有權限。圖 1 顯示了一個應用程序請求COMPANION_DEVICE_WATCH
設備配置文件權限的示例。
圖 1.請求手錶設備配置文件權限的對話框。
當應用程序和配套設備之間的關聯被刪除時,例如,當一個包的數據被清除或設備被遺忘時,CDM 會撤銷應用程序的設備配置文件角色,這會刪除配置文件角色的所有已定義權限從應用程序。
在用戶接受應用程序授予特定設備配置文件權限的請求後,用戶可以撤銷已授予的各個權限。當用戶撤銷權限時,應用程序仍與配套設備關聯,但某些功能可能會變得不可用。如果應用需要權限才能運行,應用必須通過正常的權限請求來請求權限。
要求
要讓配套應用程序訪問配套設備配置文件 API,該應用程序必須滿足以下要求:
- 有一個配套設備(例如,智能手錶)。
- 有正當理由要求為配套設備配置文件定義的權限。
觀看配套設備配置文件要求
下表描述了為COMPANION_DEVICE_WATCH
設備配置文件角色定義的權限以及使用它們的要求。
權限 | 配套應用和設備要求 |
---|---|
通知BIND_NOTIFICATION_LISTENER_SERVICE |
|
電話phone |
|
短信sms |
|
聯繫人contacts |
|
日曆calendar |
|
附近的設備nearby_devices |
|
eSIM 配置USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER |
|
管理正在進行的通話MANAGE_ONGOING_CALLS |
|
獲取訪問權限
要讓應用程序獲得對配套設備配置文件的訪問權限,它們必須獲得批准並添加到許可名單中。收到添加到許可名單的請求後,Android 團隊會審核該應用以確保其符合相應配套設備配置文件的要求。
GMS 合作夥伴:
合作夥伴可以聯繫其 Google 客戶經理,請求將配套應用添加到許可名單中。
執行
對於在特定設備上實現配套應用程序的設備製造商,請使用以下必需的 Android 系統配置來認證配套應用程序,這允許應用程序跳過向用戶顯示 CDM 提示。
使用以下命令檢索證書:
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_COMAPNION_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
向單個配套設備發出關聯請求。
對於實現請求DEVICE_PROFILE_WATCH
配置文件的配套應用程序的第三方開發人員,請執行以下操作:
- 調用
setDeviceProfile
方法。 - 在構建
AssociationRequest
時DEVICE_PROFILE_WATCH
配置文件。
驗證
要測試配套設備配置文件功能的行為,請使用以下 CTS 測試: