Fast Pair: 轻叩一下,无缝连接 Android 用户
如果您是设备制造商,或是正在开发可与特定设备协同工作的应用 (例如可穿戴设备或 IoT 应用) 的开发者,当您和您的终端用户将设备与 Android 手机进行配对时,使用 Fast Pair (快速配对) 服务可以帮助您减少工作量。
Fast Pair (快速配对) 服务
https://developers.google.cn/nearby/fast-pair/spec
确保您的外围设备符合所有的注册要求。
设备型号已在 Google 注册完毕。
当用户需要配对时,您的设备会呈现在他们的手机上。(如图 1 所示,步骤 1 中收集到的信息将会展示给用户)。
一旦用户将您的外围设备设置为配对模式,他们的 Android 手机界面底部会弹出一个对话框,显示设备名称、设备照片以及一个 Connect 按钮 (如图 1 所示)。
您的用户只需要点击该按钮即可实现设备配对,随后他们就可以享受愉快与轻松的体验了。
Fast Pair (快速配对) 服务也能够实现让用户通过他们的手机定位到放错位置的设备,甚至显示真无线立体声耳机 (TWS) 的电池电量。
Fast Pair (快速配对) 服务
https://developers.google.cn/nearby/fast-pair/spec
最后,Fast Pair 可以提示用户安装任何可与设备配套使用的应用。
注册的前提条件
个人隐私 & 低功耗蓝牙 (BLE)
随机的可解析私有地址
https://www.electronicdesign.com/technologies/communications/article/21801870/ble-v42-creating-faster-more-secure-powerefficient-designspart-2低功耗蓝牙
https://zh.wikipedia.org/wiki/蓝牙低功耗
地址需要每 15 分钟以及每次广播会话 (Advertisement Session) 开始时更新一次。但在配对模式下不要切换使用地址;切换地址会阻止连接的建立与保持,因为当地址失效时连接便会断开。
账户密钥
账户密钥 (Acount Key)
https://developers.google.cn/nearby/fast-pair/spec#AccountKeyList
BLE GATT
Model ID
Key-based Pairing
Passkey
Account Key
自定义 Characteristics
https://developers.google.cn/nearby/fast-pair/spec#gatt_service
您可以选择在应用中注册 ACTION 为 com.google.android.gms.nearby.fastpair.ACTION_LOG_BUFFER_FULL 的 BroadcastReceiver。这是可选的,因为使用此功能时,您的外围设备需要告知中枢设备数据缓冲区已满——这意味着外围设备的固件和配套应用需要做一些工作,才能对数据执行任意处理。
耳机设备
Fast Pair 常用于耳机设备,该类设备需要支持 A2DP 或 HFP。只要设备支持这些规范之一,Fast Pair 将在设备绑定完成后,先尝试连接 A2DP 之后是 HFP。
广播内容包含设备的电量信息。
用户可以自定义设备名称。
虽然这些对其他外围设备来说不是必需的,但 Fast Pair 同样也支持并且强烈推荐满足这些条件。
拥有配套应用的设备
△ 图2: 配套设备设置引导
双向通信
RFCOMM 通道
https://en.wikipedia.org/wiki/List_of_Bluetooth_protocols#Radio_frequency_communication_(RFCOMM)
注册
您需要将设备型号在 Google 注册为 Fast Pair Provider。
将设备型号在 Google 注册
https://developers.google.com/nearby/devices/
Fast Pair Provider 是一个外围设备 (例如一副耳机) 可发送能接受配对的广播。
相反地,Fast Pair Seeker 是一个中枢设备——例如一台 Android 手机或平板电脑,它寻找其他设备进行配对。Google Play 服务框架会处理这部分工作,且不需要其他模块执行任何操作,所以这里不对该内容进行介绍。
设备名称
设备图片
设备发射功率 (TxPower) 的测量值
https://developers.google.cn/nearby/fast-pair/spec#transmit_power
虽然设备的名称和图片很简单,但测量功率需要多花点功夫。我们建议您在距离 Android 手机一米远的地方测量蓝牙设备的信号强度,然后在测试结果的基础上再加 41dBm。
有关 Eddystone-UID 信息,请参阅: https://github.com/google/eddystone/tree/master/eddystone-uid#tx-power
提交 TxPower 有两种选择: 您可以在注册时手动提交,或者您的设备可以在设备广播期间将其作为负载数据中的一部分。
一旦完成注册,我们将为您提供一个 Model ID 和加密的公/私密钥对。与任何非对称加密系统一样,我们强烈建议您将私钥存储在设备上的安全元件 (SE) 中,这样攻击者便无法访问它。
有关非对称密钥,请参阅:《从加密到验证,全方位保障您应用的通讯安全》
您的设备在广播期间的负载数据中 (Advertisement Record) 需包括 Google 提供的 Model ID 和设备的 TxPower 等级 (如果您在注册时尚未提供的话)。
Model ID
https://developers.google.cn/nearby/fast-pair/spec#AdvertisingWhenDiscoverable
结语
欢迎您通过下方二维码向我们提交反馈,或分享您喜欢的内容、发现的问题。您的反馈对我们非常重要,感谢您的支持!
推荐阅读