头图

如果您是设备制造商,或是正在开发可与特定设备协同工作的应用 (例如可穿戴设备或 IoT 应用) 的开发者,当您和您的终端用户将设备与 Android 手机进行配对时,使用 Fast Pair (快速配对) 服务 可以帮助您减少工作量。

事实上,您无需通过编码来启用 Fast Pairing,除非您希望在自己的配套应用中处理配对操作,而不是让 API 来帮您完成配对。

配对过程只有三个步骤:

  1. 确保您的外围设备符合所有的注册要求。
  2. 设备型号已在 Google 注册完毕。
  3. 当用户需要配对时,您的设备会呈现在他们的手机上。(如图 1 所示,步骤 1 中收集到的信息将会展示给用户)。

△ 图 1: Fast Pair 的连接通知

△ 图 1: Fast Pair 的连接通知

一旦用户将您的外围设备设置为配对模式,他们的 Android 手机界面底部会弹出一个对话框,显示设备名称、设备照片以及一个 Connect 按钮 (如图 1 所示)。

您的用户只需要点击该按钮即可实现设备配对,随后他们就可以享受愉快与轻松的体验了。

Fast Pair (快速配对) 服务 也能够实现让用户通过他们的手机定位到放错位置的设备,甚至显示真无线立体声耳机 (TWS) 的电池电量。

最后,Fast Pair 可以提示用户安装任何可与设备配套使用的应用。

注册的前提条件

为确保您的设备能正确运行 Fast Pair,并提供更好的用户体验,需要满足如下条件:

个人隐私 & 低功耗蓝牙 (BLE)

为保护您用户的个人隐私并防止被跟踪,我们要求设备使用带有 随机的可解析私有地址 (RPA) 的 低功耗蓝牙 (BLE)。

地址需要每 15 分钟以及每次广播会话 (Advertisement Session) 开始时更新一次。但在配对模式下不要切换使用地址;切换地址会阻止连接的建立与保持,因为当地址失效时连接便会断开。

账户密钥

Fast Pair 使用不同的 账户密钥 (Acount Key) 来代表外围设备的不同的个人用户。账户密钥可以映射到一个 Gmail 地址上。

您的外围设备需要存储至少五个账户密钥,以便多人同时使用同一设备。比如,家庭中的父母和孩子可以共用一辆车,每个人都会把自己的 Gmail 地址作为账户密钥使用。

作为一项附加功能,一个人在多部 Android 手机或平板电脑上使用同一个 Gmail 账户的情况,也会被 Fast Pair 服务视为一个账户密钥。因此,如果是十个不同的 Android 设备共享同一个 Gmail 账户,对于 Fast Pair 而言,您的外围设备不会做任何区分,它会将这些设备识别为同一个用户。

BLE GATT

您的设备需支持具有 Services 和 Characteristics 的 BLE GATT 的配置文件。

使用 Fast Pair 时,您需要定义一个 UUID 为 0xFE2C 的 service 和以下 自定义 Characteristics:

  • Model ID
  • Key-based Pairing
  • Passkey
  • Account Key

以上均为标准 Characteristics 和任何自定义 Characteristics (可用于与配套应用之间的通讯) 的补充。

如果您有配套应用并且已将其安装在中枢设备上,您的自定义数据将被转发至该应用。否则,自定义数据将被直接忽略。

您可以选择在应用中注册 ACTION 为 com.google.android.gms.nearby.fastpair.ACTION_LOG_BUFFER_FULLBroadcastReceiver。这是可选的,因为使用此功能时,您的外围设备需要告知中枢设备数据缓冲区已满——这意味着外围设备的固件和配套应用需要做一些工作,才能对数据执行任意处理。

耳机设备

Fast Pair 常用于耳机设备,该类设备需要支持 A2DP 或 HFP。只要设备支持这些规范之一,Fast Pair 将在设备绑定完成后,先尝试连接 A2DP 之后是 HFP。

对于 TWS 耳机,需要满足以下条件:

  • 广播内容包含设备的电量信息。
  • 用户可以自定义设备名称。

虽然这些对其他外围设备来说不是必需的,但 Fast Pair 同样也支持并且强烈推荐满足这些条件。

拥有配套应用的设备

Fast Pair 具有更通用的配套应用启动流程,用于支持各种配套设备。在此流程中,Fast Pair 仅能发现距离最近的设备,检查该设备的配套应用 (如果尚未安装应用,则提示用户安装),并将用户引导到配套应用的指定界面。该流程不涉及 BT 绑定。

FitBit 采用此流程简化了它们设备配置的过程。另一个采用此流程的设备案例可能是智能体重秤或电动牙刷,可用于展示其配套应用并简化开箱即用的体验。

△ 图2: 配套设备设置引导

△ 图2: 配套设备设置引导

双向通信

虽然广播是单向通信,然而一旦您的设备成功连接到中枢设备,例如 Android 手机,双向通信就成为可能。

Fast Pair 为您的外围设备提供了一个 RFCOMM 通道),以保持与中枢设备的持续通信。一旦连接成功,切换到经典的蓝牙进行双向通信是完全没问题的。

注册

您需要 将设备型号在 Google 注册Fast Pair Provider

Fast Pair Provider 是一个外围设备 (例如一副耳机) 可发送能接受配对的广播。

相反地,Fast Pair Seeker 是一个中枢设备——例如一台 Android 手机或平板电脑,它寻找其他设备进行配对。Google Play 服务框架会处理这部分工作,且不需要其他模块执行任何操作,所以这里不对该内容进行介绍。

为了注册您的外围设备,您只需要提供以下内容:

  • 设备名称
  • 设备图片
  • 设备发射功率 (TxPower) 的 测量值

虽然设备的名称和图片很简单,但测量功率需要多花点功夫。我们建议您在距离 Android 手机一米远的地方测量蓝牙设备的信号强度,然后在测试结果的基础上再加 41dBm。

  • 有关 Eddystone-UID 信息,请参阅 这里

提交 TxPower 有两种选择: 您可以在注册时手动提交,或者您的设备可以在设备广播期间将其作为负载数据中的一部分。

如果您在注册期间提供了设备的 TxPower,则您提交的所有设备单位均被校准到准确的 TxPower 等级。另一方面,如果您决定把 TxPower 信息作为广播记录的一部分,TxPower 等级将按每单位的标准处理。

一旦完成注册,我们将为您提供一个 Model ID 和加密的公/私密钥对。与任何非对称加密系统一样,我们强烈建议您将私钥存储在设备上的安全元件 (SE) 中,这样攻击者便无法访问它。

您的设备在广播期间的负载数据中 (Advertisement Record) 需包括 Google 提供的 Model ID 和设备的 TxPower 等级 (如果您在注册时尚未提供的话)。

结语

Fast Pair 是 Google 提供的一项服务,作为 Google Play 服务的一部分,用于简化 Android 用户的设备配对过程。除了让配对更加方便以外,Fast Pair 还提供了其他一些很棒的功能,包括帮助用户定位到放错位置的设备,并提示设备安装对应的配套应用等。为了能提供给用户最佳体验,尽管存在一些前提条件,但注册过程本身却很简单,因为它只需要提供设备名称和图片。

欢迎您 点击这里 向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!


Android开发者
404 声望2k 粉丝

Android 最新开发技术更新,包括 Kotlin、Android Studio、Jetpack 和 Android 最新系统技术特性分享。更多内容,请关注 官方 Android 开发者文档。