配套設備配置文件

Android 12 中引入的配套設備配置文件是一項功能,允許配套應用請求一組特定於配套設備類型的權限,例如智能手錶。使用配套設備配置文件可以簡化註冊過程,允許應用向移動設備上的用戶顯示單個提示以請求一組定義的權限,而不是多個提示單獨請求權限。這可以為配套應用提供更簡化的設置體驗和更好的選擇率。

配套設備配置文件僅適用於擁有配套設備的設備製造商。對於配套設備獲得的功能接入,它們必須滿足的要求和批准。

以下配套設備配置文件類型的Android 12可供選擇: COMPANION_DEVICE_WATCH

有關配套設備的詳細信息,請參閱配套設備配對

設備行為

本節介紹使用配套設備配置文件時的設備行為。

當用戶接受應用程序的要求,以建立一個配套設備的關聯,在CompanionDeviceManager (CDM)服務等待同伴設備進行連接,並且在連接時,該CDM指定設備配置文件的作用(例如,手錶)至配套應用程序,授予為該指定配置文件角色定義的所有權限。圖1示出一個應用程序請求的權限的示例COMPANION_DEVICE_WATCH設備簡檔。

觀看設備配置文件對話框提示

圖1對話框,要求手錶設備配置文件的權限。

當應用程序和配套設備之間的關聯被刪除時,例如當一個包的數據被清除或設備被遺忘時,CDM 會撤銷應用程序的設備配置文件角色,這將刪除配置文件角色的所有定義權限從應用程序。

在用戶接受應用程序為特定設備配置文件授予權限的請求後,用戶可以撤銷已授予的個人權限。當用戶撤銷權限時,應用程序仍與配套設備關聯,但某些功能可能會變得不可用。如果需要用於該應用功能的許可,應用程序必須通過正常請求許可的許可請求

要求

要使配套應用程序訪問配套設備配置文件 API,該應用程序必須滿足以下要求:

  • 有一個配套設備(例如,智能手錶)。
  • 有正當理由要求為配套設備配置文件定義權限。

觀看配套設備配置文件要求

下表描述了該定義的權限COMPANION_DEVICE_WATCH設備配置文件的作用和使用它們的要求。

權限配套應用和設備要求
通知

BIND_NOTIFICATION_LISTENER_SERVICE
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有一個能夠顯示通知的屏幕(不包括使用觸覺而不是屏幕的設備)
  • 提供面向用戶的通知體驗,例如,在配套設備屏幕上顯示電話通知
電話

phone
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 具有支持語音對話的內置麥克風和揚聲器
  • 有一個顯示來電者信息的屏幕
  • 提供面向用戶的電話呼叫體驗(配套應用程序橋接電話)
短信

sms
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有一個顯示短信的屏幕
  • 提供面向用戶的短信體驗
聯繫人

contacts
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有顯示屏
  • 使用聯繫信息作為通話或消息體驗的一部分
日曆

calendar
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有顯示屏
  • 在手錶上提供面向用戶的日曆體驗
附近的設備

nearby_devices
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有顯示屏
  • 在手錶上提供面向用戶的配對/連接體驗
eSIM 配置

USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 有顯示屏
  • 提供面向用戶的體驗,通過手錶上的運營商管理訂閱者的服務
管理正在進行的通話

MANAGE_ONGOING_CALLS
  • 成為使用藍牙和/或 Wi-Fi 的連接設備
  • 具有支持語音對話的內置麥克風和揚聲器
  • 有一個顯示來電者信息的屏幕
  • 提供面向用戶的電話呼叫體驗(配套應用程序橋接電話)

獲取訪問權限

要使應用獲得對配套設備配置文件的訪問權限,它們必須獲得批准並將其添加到許可名單中。當要添加到允許列表接收請求,Android團隊審查程序,以確保其符合要求的相應配套設備的配置文件。

執行

對於在特定設備上實現配套應用程序的設備製造商,請使用以下必需的 Android 系統配置來認證配套應用程序,這允許應用程序跳過向用戶顯示 CDM 提示。

  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_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>
    
  3. 使用AssociationRequest使關聯請求到一個配套設備。

為了實現一個同伴的應用程序,要求第三方開發者DEVICE_PROFILE_WATCH輪廓,請執行以下操作:

  1. 調用setDeviceProfile方法。
  2. 通過在DEVICE_PROFILE_WATCH建設時的個人資料AssociationRequest

驗證

要測試配套設備配置文件功能的行為,請使用以下 CTS 測試: