小程序
小游戏
企业微信
微信支付
扫描小程序码分享
- 当前问题的表现
已搜索到蓝牙设备的mac地址,通过wx.createBLEConnection连接该设备,尝试多次均失败,返回错误代码10006或10012。
使用IOS测试无任何问题。
请参考具体的建立连接代码片段,不知是我代码调用有问题,还是手机有何设置未开启
请遇到类似问题的朋友方便的话帮忙答复一下,谢谢!
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
回来结贴 首先非常感谢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字节就会报错,所以统一设置成分包读写可以解决该问题。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
请问下 你的10006是怎么解决的 还有会出现文件超过文件存储限制的最大大小 'fail the maximum size of the file storage limit is exceeded ' 是怎么解决 收到请回复 感谢
你好,10006是指当前连接已断开
10012的建议参考下面这个回答:
连接蓝牙打印机返回10012https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=00024ab206c61032c3c6104845f400&highline=10012
设置超时时间后,可以正常建立连接了,可能是由于IOS连接快速,android稍慢导致超出接口默认超时时间。 非常感谢!
但是在建立连接并获取serviceUUID后,通过制定serviceUUID获取特征时android报错10005,IOS正常,以下两图分别为anroid控制台日志和IOS控制台日志,方便的话请帮忙答复一下,再次感谢!
参考文档蓝牙连接错误码:
https://developers.weixin.qq.com/miniprogram/dev/api/bluetooth.html#%E8%93%9D%E7%89%99%E9%94%99%E8%AF%AF%E7%A0%81errcode%E5%88%97%E8%A1%A8
感谢以上回复。对应的错误代码都已查看,但是IOS链接正常,Android连接时报错,想问下是系统差异性,android版本的差异性,还是代码实现应该根据不同系统做出调整,亦或是android系统设置不正确
那你提供下代码片段我们这边看下,也提供下你说出现问题的机型,你上面提供的代码片段没有和连接蓝牙相关的呀
wechatide://minicode/WxsBjWmm6vZA
链接里的代码片段对应检测蓝牙状态=》发起BLE连接=》获取services=》获取对应service的特征值=》读取特征值
如果方便的话可以加下我微信:wxid_0gigbmw8izqv21
感谢!
Android无法连接双模的蓝牙设备,只能连接BLE设备。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字节就会报错,所以统一设置成分包读写可以解决该问题。
请问下 你的10006是怎么解决的 还有会出现文件超过文件存储限制的最大大小 'fail the maximum size of the file storage limit is exceeded ' 是怎么解决 收到请回复 感谢
你好,10006是指当前连接已断开
10012的建议参考下面这个回答:
连接蓝牙打印机返回10012
https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=00024ab206c61032c3c6104845f400&highline=10012
设置超时时间后,可以正常建立连接了,可能是由于IOS连接快速,android稍慢导致超出接口默认超时时间。 非常感谢!
但是在建立连接并获取serviceUUID后,通过制定serviceUUID获取特征时android报错10005,IOS正常,以下两图分别为anroid控制台日志和IOS控制台日志,方便的话请帮忙答复一下,再次感谢!
参考文档蓝牙连接错误码:
https://developers.weixin.qq.com/miniprogram/dev/api/bluetooth.html#%E8%93%9D%E7%89%99%E9%94%99%E8%AF%AF%E7%A0%81errcode%E5%88%97%E8%A1%A8
感谢以上回复。对应的错误代码都已查看,但是IOS链接正常,Android连接时报错,想问下是系统差异性,android版本的差异性,还是代码实现应该根据不同系统做出调整,亦或是android系统设置不正确
那你提供下代码片段我们这边看下,也提供下你说出现问题的机型,你上面提供的代码片段没有和连接蓝牙相关的呀
wechatide://minicode/WxsBjWmm6vZA
链接里的代码片段对应检测蓝牙状态=》发起BLE连接=》获取services=》获取对应service的特征值=》读取特征值
如果方便的话可以加下我微信:wxid_0gigbmw8izqv21
感谢!
Android无法连接双模的蓝牙设备,只能连接BLE设备。IOS都可以连接上。