- 蓝牙扫描突发严重BUG
今天突然发现我们的线上小程序几乎所有的安卓手机都搜索不到蓝牙设备了(线上运行的小程序最后一次更新发布是3月19号,此版本发布后已正常运行大半个月了),但是苹果手机又都是正常的。目前安卓手机里只有一台锤子坚果pro2是正常的,其余华为,小米均不能搜索到蓝牙,麻烦官方人员看一下什么情况。 我们通过开发版跟踪代码,发现安卓手机无法搜索到蓝牙设备的原因主要是如下函数: getBluetoothAdapterState: function () { var that = this; wx.getBluetoothAdapterState({ success: function (res) { var available = res.available; var discovering = res.discovering; // console.log(available, discovering,'==getBluetoothAdapterState'); if (!available) { wx.showToast({ title: '无法开启蓝牙连接', icon: 'success', duration: 3000 }) setTimeout(function () { wx.hideToast() }, 3000); } else { if (!res.discovering) { setTimeout(function () { that.startBluetoothDevicesDiscovery(); }, 100) } } } }) }, 上面那个函数中,res.discovering一直总是返回true,所以导致从一开始就没办法进入到判断里面去执行this.startBluetoothDevicesDiscovery()去搜索蓝牙设备,因此一直搜索不到蓝牙设备。但是,以前是不会这样的,第一次搜索时res.discovering是会返回false的。感觉是微信的api接口内部改变了,麻烦处理一下,谢谢!我们这个问题似乎前天也有人遇到了,帖子标题是 Android微信测试版6.6.6蓝牙异常 [图片]
2018-04-12 - 蓝牙设备主 service 的 uuid 列表疑问
我们目前遇到的问题是,有两个不同的蓝牙设备,他们的主service UUID分别0000,0006,那么用安卓的手机调用wx.startBluetoothDevicesDiscovery时,发现无法扫描到任何蓝牙设备,但是用iphone手机则是正常的。代码段如下: //开始搜索设备,蓝牙初始化成功后就可以搜索设备 startBluetoothDevicesDiscovery: function () { var that = this; wx.startBluetoothDevicesDiscovery({ services: ['0000', '0006'], allowDuplicatesKey: true, success: function (res) { console.log('===搜索设备===',res); if (!res.isDiscovering) { that.getBluetoothAdapterState(); } else { that.onBluetoothDeviceFound(); } }, fail: function (err) { that.onBluetoothAdapterStateChange(); }, complete: function (com) {} }); }, 若将上述代码段中的services: ['0000', '0006']更改为只有一个元素,比如更改为services: ['0000']时,则安卓手机可以扫描到主服务uuid为0000的设备,若更改为services: ['0006']时,则安卓手机可以扫描到主服务uuid为0006的设备。苹果手机则都是一切正常。不知道是不是我们的写法有问题,导致安卓机型都不行。 麻烦官方人员指导一下,很急很急,谢谢!
2017-12-28 - 小程序扫描蓝牙广播卡死的问题
最近调试微信小程序蓝牙扫描广播,遇到两个比较严重的问题: 当在小程序中执行wx.startBluetoothDevicesDiscovery后,若是在周边有很多蓝牙设备(比如超过200个蓝牙设备同时发送蓝牙广播),有些安卓手机上的小程序会马上变得很卡顿,甚至导致微信卡死(360N5S手机则是扫描时周围有40个蓝牙设备左右就开始很卡顿了,锤子坚果pro手机可能是周围有200个蓝牙设备开始卡顿,小米5s plus也是周围有几十个蓝牙设备在发广播就开始卡顿),但是苹果手机没有出现这个问题; 有些安卓手机,比如锤子手机坚果pro(安卓版本7.1.1)通过微信小程序搜索蓝牙广播时,只能运行30分钟,超过30分钟后,就再也搜索不到任何蓝牙广播数据,这个时候,必须要靠人工手动关闭蓝牙,再打开蓝牙,微信小程序又可以搜索到蓝牙了,否则若是简单的退出杀死小程序,再重新进入打开小程序执行蓝牙wx.startBluetoothDevicesDiscovery语句,仍然是无法搜索蓝牙的。 这两个问题困扰好几天了,麻烦官方工程师能支持一下。
2017-12-27