收藏
回答

android手机无法连接蓝牙设备

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug Android 7.0 HUAWEI P9 6.6.7

- 当前问题的表现

已搜索到蓝牙设备的mac地址,通过wx.createBLEConnection连接该设备,尝试多次均失败,返回错误代码10006或10012。

使用IOS测试无任何问题。

请参考具体的建立连接代码片段,不知是我代码调用有问题,还是手机有何设置未开启

请遇到类似问题的朋友方便的话帮忙答复一下,谢谢!



最后一次编辑于  2018-06-04  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-06-04

    你好,10006是指当前连接已断开

    10012的建议参考下面这个回答:

    连接蓝牙打印机返回10012
    https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=00024ab206c61032c3c6104845f400&highline=10012

    2018-06-04
    赞同 1
    回复 11
    • WonDerful 。
      WonDerful 。
      2018-06-04

      设置超时时间后,可以正常建立连接了,可能是由于IOS连接快速,android稍慢导致超出接口默认超时时间。 非常感谢!

      但是在建立连接并获取serviceUUID后,通过制定serviceUUID获取特征时android报错10005,IOS正常,以下两图分别为anroid控制台日志和IOS控制台日志,方便的话请帮忙答复一下,再次感谢!





      2018-06-04
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2018-06-04回复WonDerful 。


      参考文档蓝牙连接错误码:

      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

      2018-06-04
      回复
    • WonDerful 。
      WonDerful 。
      2018-06-05回复社区技术运营专员-娇华

      感谢以上回复。对应的错误代码都已查看,但是IOS链接正常,Android连接时报错,想问下是系统差异性,android版本的差异性,还是代码实现应该根据不同系统做出调整,亦或是android系统设置不正确

      2018-06-05
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      2018-06-05回复WonDerful 。

      那你提供下代码片段我们这边看下,也提供下你说出现问题的机型,你上面提供的代码片段没有和连接蓝牙相关的呀

      2018-06-05
      回复
    • WonDerful 。
      WonDerful 。
      2018-06-05回复社区技术运营专员-娇华

      wechatide://minicode/WxsBjWmm6vZA

      链接里的代码片段对应检测蓝牙状态=》发起BLE连接=》获取services=》获取对应service的特征值=》读取特征值

      如果方便的话可以加下我微信:wxid_0gigbmw8izqv21

      感谢!

      2018-06-05
      回复
    查看更多(6)
  • WonDerful 。
    WonDerful 。
    2018-06-28

    回来结贴 首先非常感谢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字节就会报错,所以统一设置成分包读写可以解决该问题。

    2018-06-28
    赞同 1
    回复 1
    • Xavier Xie
      Xavier Xie
      2018-07-04

      请问下  你的10006是怎么解决的  还有会出现文件超过文件存储限制的最大大小 'fail the maximum size of the file storage limit is exceeded ' 是怎么解决  收到请回复  感谢

      2018-07-04
      回复
  • .
    .
    2018-07-19

    Android无法连接双模的蓝牙设备,只能连接BLE设备。IOS都可以连接上。

    2018-07-19
    赞同
    回复