|
在小程序中,要使用蓝牙能力(Beacon 除外)必须首先调用 wx.openBluetoothAdapter 初始化蓝牙适配器模块,其生效周期为调用 wx.openBluetoothAdapter 至调用 wx.closeBluetoothAdapter 或小程序被销毁为止。只有在小程序蓝牙适配器模块生效期间,开发者才能够正常调用蓝牙相关的小程序 API,并收到蓝牙模块相关的事件回调(绑定监听不受此限制)。
小程序对蓝牙支持情况如下:
经典蓝牙:iOS 因系统限制暂无法提供,安卓目前已在规划中。
蓝牙低功耗 (BLE):
主机模式:基础库 1.1.0(微信客户端 iOS 6.5.6,Android 6.5.7)开始支持。
从机模式:基础库 2.10.3 开始支持。
蓝牙信标 (Beacon):基础库 1.2.0 开始支持。
注意事项
由于各平台对蓝牙协议栈的实现和限制有较大差异,开发者在使用小程序蓝牙能力时还需要注意以下方面:
设备 ID (deviceId)
每个蓝牙外围设备都有唯一的 deviceId 来标识。由于部分系统实现的限制,对于同一台蓝牙外围设备,在不同中心设备上扫描获取到的 deviceId 可能是变化的。因此 deviceId 不能硬编码到代码中。
Android 设备上扫描获取到的 deviceId 为外围设备的 MAC 地址,相对固定;
iOS 设备上扫描获取到的 deviceId 是系统根据外围设备 MAC 地址及发现设备的时间生成的 UUID。对于已连接过的设备,UUID 会在一段时间内保持不变。此外,UUID 也会在某些条件下可能会发生变化(如系统蓝牙模块重启、配对设备被忽略等),在不同的设备上获取到的 UUID 也是不同的。
调试
不同平台的蓝牙实现也存在较大差异。小程序会在提供统一接口的基础上,尽可能的提供完整的系统蓝牙能力,弱化不同平台的实现差异。
但由于操作系统本身的限制,部分能力无法保证完全一致,请开发者注意文档中的注意事项,并在各端的真机都进行调试。开发者工具上只能模拟部分蓝牙接口能力,完整功能请使用真机调试。
|
|