小程序将各平台的蓝牙能力通过统一的接口封装提供给开发者使用。利用小程序的蓝牙接口,开发者可以通过无线方式与其他蓝牙设备交换数据。
由于各平台对蓝牙协议栈的实现和限制有较大差异,开发者在使用小程序蓝牙能力时还需要注意以下方面:
# 3.1 设备 ID (deviceId)
每个蓝牙外围设备都有唯一的 deviceId
来标识。由于部分系统实现的限制,对于同一台蓝牙外围设备,在不同中心设备上扫描获取到的 deviceId
可能是变化的。因此 deviceId
不能硬编码到代码中。
- Android 设备上扫描获取到的
deviceId
为外围设备的 MAC 地址,相对固定; - iOS 设备上扫描获取到的
deviceId
是系统根据外围设备 MAC 地址及发现设备的时间生成的 UUID。对于已连接过的设备,UUID 会在一段时间内保持不变。此外,UUID 也会在某些条件下可能会发生变化(如系统蓝牙模块重启、配对设备被忽略等),在不同的设备上获取到的 UUID 也是不同的。
# 3.2 调试
不同平台的蓝牙实现也存在较大差异。小程序会在提供统一接口的基础上,尽可能的提供完整的系统蓝牙能力,弱化不同平台的实现差异。
但由于操作系统本身的限制,部分能力无法保证完全一致,请开发者注意文档中的注意事项,并在各端的真机都进行调试。开发者工具上只能模拟部分蓝牙接口能力,完整功能请使用真机调试。