微信小程序蓝牙踩坑

  因为在写这小程序之前已经写过一个功能类似的安卓App,所以对于蓝牙搜索、连接到收发数据的整个流程都比较熟悉。可是呢,看着小程序的API一顿操作后,在安卓上调试下,嗯,prefect,换ios上看看......F**k!问题来了!!
1、IOS不能获取设备的Mac地址
  在官方文档上我们可以清晰知道返回的device对象所包含的内容,其中的deviceId就是吐槽的第一个点。在Android上,deviceId对应的是设备的Mac地址;而在IOS上,deviceId是分配给该设备的UUID,并不是对应的Mac地址,而解析其他的字段还是没有得到Mac地址信息。不过呢,事实证明,Android和IOS都可以利用deviceId完成蓝牙的连接、通讯操作的。只是当有显示Mac地址的需求时,这是需要注意的点。

devices.png

2、启动notify功能
  对于Android而言,当我们知道了serviceId和characteristicId对应的具体指,在连接蓝牙设备成功后,可以直接使用wx.notifyBLECharacteristicValueChange()方法,在参数上直接填上serviceId和characteristicId,完成启动notify功能。
  对于IOS而言,要启动notify功能,在连接成功后,必须要使用wx.getBLEDeviceServices()方法获取serviceId,然后通过获取到的serviceId调用wx.getBLEDeviceCharacteristics()方法获取characteristicId,最后再使用wx.notifyBLECharacteristicValueChange()方法启动notify功能。尽管获取的UUID就是我们所知道的值!所以,为了兼容性,启动notify功能还是要一步步地来。

启动notify.png

你可能感兴趣的:(微信小程序蓝牙踩坑)