- 当前问题的表现
已搜索到蓝牙设备的mac地址,通过wx.createBLEConnection连接该设备,尝试多次均失败,返回错误代码10006或10012。
使用IOS测试无任何问题。
请参考具体的建立连接代码片段,不知是我代码调用有问题,还是手机有何设置未开启
请遇到类似问题的朋友方便的话帮忙答复一下,谢谢!
回来结贴首先非常感谢Tummy的调试帮助!
主要两个问题,第一无法建立连接,第二无法获取特征值内容。关于问题一:1.由于android设备对于应用有各种权限限制,所以在使用小程序的蓝牙API时请先赋予微信所有权限。
2.android设备持有的BLE连接数是有限的,一般是3~8个(跟手机厂商调校有关),如果在调用createbleconnection后没有成对调用closebleconnection,会导致微信占用了android设备的BLE连接,如此反复操作,设备BLE连接数会被占满,如果不重启手机或者开关蓝牙是无法再连接成功的。
2.android设备连接失败后,再次立即尝试很大概率不会成功,稍等一会儿(10秒以上)或者开关手机蓝牙后再次尝试连接,90%可以连接成功。该现象在小程序和android原生BLE APP上已验证。由于是android提供的API,所以暂时无解。关于问题二:在IOS上小程序读写特征值的确不需要分包,而且最大支持150个字节的单次读写(IOS11测试结果)。但是在android上,如果某个特征读写超过20字节就会报错,所以统一设置成分包读写可以解决该问题。