详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
BLE设备的广播数据中的advertisData在安卓手机上内容不对,而且所有设备都一样
重现步骤
[步骤]
用Android手机调用BLE的API,搜索附近的BLE设备
[结果]
搜索到设备,获得到的所有BLE设备的广播数据中的advertisData都一样,转成16进制字符串是:A1B8DE72D02BADAC81B9F7DE
[期望]
搜索到设备,并且正确获得BLE设备的广播数据
IDE运行环境说明
windows HBuilderX 1.5.4
App运行环境说明
[Android版本号]
5.1.1
[手机型号]
OnePlus2
附件
[App问题代码片段]
uni.onBluetoothDeviceFound(function(devices) {
//正确的广播数据是这样的:1111010303ffff95033286,mac地址最后12位
var macAddressTmp = that.arrayBufferToHexString(
devices.devices[0].advertisData
);
console.log('advertisData is '+macAddressTmp.toString());
arrayBufferToHexString(buffer) {
let bufferType = Object.prototype.toString.call(buffer)
if (buffer != '[object ArrayBuffer]') {
return
}
let dataView = new DataView(buffer)
var hexStr = '';
for (var i = 0; i < dataView.byteLength; i++) {
var str = dataView.getUint8(i);
var hex = (str & 0xff).toString(16);
hex = (hex.length === 1) ? '0' + hex : hex;
hexStr += hex;
}
return hexStr.toUpperCase();
},
[安装包]
https://pan.baidu.com/s/1DZXxP4LuabIKqdoORG_Xkw
联系方式
[QQ]
376642164
4 个回复
j***@qq.com (作者)
请问问题解决了么?
2***@qq.com - 没有
有官方出来解答一下吗,我也遇到这个问题,产品都没法做下去了啊!
2***@qq.com - 没有
附上我的测试环境:
HBuildX 1.8.2版本
测试的的手机:华为荣耀9 android8.0,苹果7 iOS12.2。
现象跟上文完全一样,同样的设备,采用uni的代码只能得到一串字符串a1 b8 de 72 d0 2b ad ac 81 b9 f7 de,与上文相同。
用第三方工具nRF connect app可以看到具体的advertisData数据,所以设备肯定是没问题的。
2***@qq.com
解决了 吗?Android和iOS上的解析都是错误的,微信小程序端的是正确的?官方出来解释一下啊