wx.onBluetoothDeviceFound 在安卓手部分机下不执行
近期做了一个微信小程序蓝牙搜索设备,前期一切都进行的非常顺利,为什么呢,因为我只有ios手机可以进行测试,安卓机也有,但是没有那么多微信号,一个账号在多台设备之间来回切换容易产生异常情况,也就没去处理这事,一直用的苹果手机测试,功能断断续续的开发了约一周左右,差不多要告一段落了,开始用安卓机测试,发现了非常奇葩的现象,搜索不到蓝牙设备,我们具体点说,看图
紧接着是调用wx.onBluetoothDeviceFound方法,这可是参考的小程序官方给出的文档,我给这个api加了services参数,bug来了,在安卓机上死活不行,就是搜索不到蓝牙设备,怎么都不行,我开始了各种怀疑人生的操作,排除问题,真的是花了很久,找了各个网上的文档以及开发者们向微信官方提出的同类型问题的质疑,都没有我想要的答案
下边只能曲线救国了,思路是,在startBluetoothDevicesDiscovery这个地方区分安卓和ios,ios可以写上这个services参数,安卓端不要写,当大家走到onBluetoothDeviceFound这里的时候,进行必要的分流处理,ios可以直接进行逻辑处理以及数据渲染,对于安卓机在此处回调的时候分流到wx.getBluetoothDevices这个api中进行处理,在这里去获取蓝牙广播数据,找到设备的产品标识,单独处理,具体逻辑和Ios处理逻辑大致类似,以此解决安卓机无法搜索到自己想要的蓝牙设备的问题
上边这一段红色字体的文字,大家一定要仔细阅读,理清楚思路,问题就迎刃而解了,希望各位同仁不再踩坑,如果仍然不能理解的,可以发送邮件到[email protected]邮箱,我会在方便的时候回复您的邮件,一起进步