配套设备配置文件

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)
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 具有能够显示通知的屏幕(不包括使用触感反馈而没有屏幕的设备)
  • 提供面向用户的通知体验,例如在配套设备的屏幕上显示电话通知。
  • 发布手机通知以进行设备管理,例如,在手表已连接或特定功能已启用时。
Phone
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有内置麦克风和扬声器,支持语音对话
  • 具有用于显示来电者信息的屏幕
  • 提供面向用户的通话体验(配套应用与电话相关联)
SMS
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 具有用于显示短信的屏幕
  • 提供面向用户的短信体验
Contacts
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在通话或短信体验中显示联系人信息
Calendar
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在手表上提供面向用户的日历体验
Nearby devices
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在手表上提供面向用户的配对/连接体验
eSIM provisioning
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在手表上提供面向用户的体验,允许用户管理运营商提供的订阅者服务
Managing ongoing calls
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有内置麦克风和扬声器,支持语音对话
  • 具有用于显示来电者信息的屏幕
  • 提供面向用户的通话体验(配套应用与电话相关联)

眼镜配置文件

Android 14 中引入了眼镜配置文件。

下表列出了为 COMPANION_DEVICE_GLASSES 设备配置文件定义的权限,以及使用这些权限需要满足的要求。

权限 配套应用和设备要求
通知

POST_NOTIFICATIONS
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 具有能够显示通知的屏幕(不包括使用触感反馈而没有屏幕的设备)
  • 提供面向用户的通知体验,例如在配套设备的屏幕上显示电话通知。
  • 发布手机通知以进行设备管理,例如,在眼镜设备已连接或特定功能已启用时。
Phone
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有内置麦克风和扬声器,支持语音对话
  • 具有用于显示来电者信息的屏幕
  • 提供面向用户的通话体验(配套应用与电话相关联)
SMS
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 具有用于显示短信的屏幕
  • 提供面向用户的短信体验
Contacts
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在通话或短信体验中显示联系人信息
Microphone
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在眼镜上提供面向用户的麦克风体验
Nearby devices
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有显示屏
  • 在眼镜上提供面向用户的配对/连接体验
Managing ongoing calls
  • 通过蓝牙和/或 Wi-Fi 建立设备连接
  • 有内置麦克风和扬声器,支持语音对话
  • 具有用于显示来电者信息的屏幕
  • 提供面向用户的通话体验(配套应用与电话相关联)

实现

对于第三方开发者,如要实现请求 DEVICE_PROFILE_WATCH 配置文件的配套应用,请执行以下操作:

  1. 调用 setDeviceProfile 方法。

  2. 在构建 AssociationRequest 时传入配置文件(例如 DEVICE_PROFILE_WATCH)。

对于通过特定设备实现配套应用的设备制造商,请使用以下必需 Android 系统配置对配套应用进行认证,从而使应用可以跳过向用户显示用户意见征求对话框的步骤。

  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_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>
    
  3. 使用 AssociationRequest 向单个配套设备发出关联请求。

验证

如需测试配套设备配置文件功能的行为,请使用 cts/tests/tests/companion/ 中的 CTS 测试。