今天突然发现我们的线上小程序几乎所有的安卓手机都搜索不到蓝牙设备了(线上运行的小程序最后一次更新发布是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接口内部改变了,麻烦处理一下,谢谢!我们这个问题似乎前天也有人遇到了,帖子标题是
wx.onBluetoothDeviceFound(function(devices) { console.log('new device list has founded') console.dir(devices) console.log(ab2hex(devices[0].advertisData)) })
在三星s7这个回调没有被调用, ios没有问题。
我用的meizu pro5手机,外中官方实例一直搜索不到外设;你们有没有遇到?
@刘志超 是安卓的蓝牙接口返回值变了,仔细看一下开发文档就好了
我也遇到这个问题,我们咨询过微信小程序的技术人员,对方说是6.6.6版本的bug,得到下版本解决。 但是不知道微信什么时候可以出下版本,我们的小程序也都上线了,急啊!
解决了吗
请问,这个问题解决了吗?
目前发现所有不行的安卓手机都是4月10和4月11号自动升级成了微信6.6.6版本的,6.6.5版本及之前的微信版本小程序搜索蓝牙都是正常的,所以问题应该出在微信6.6.6版本上,麻烦微信官方重视一下这个问题。