关于蓝牙监听寻找到新设备读取(advertiseData)的问题

发布于 7 年前作者 weitan12296 次浏览最后编辑 7 年前来自 ask

wx.onBluetoothDeviceFound(CALLBACK)在返回的device 对象里面有个advertiseData属性,类型是ArrayBuffer,可是我在真机上得到的是string,这是怎么一回事呢,求解,感谢

6 回复
weisong
weisong1 楼6 年前

advertiseData 是不能直接打印的,

var data = wx.base64ToArrayBuffer(advertisData);

var str = buf2hex(data);

function buf2hex(buffer) {

  return Array.prototype.map.call(new Uint8Array(buffer), x => (‘00’ + x.toString(16)).slice(-2)).join(‘’);

}

nchang
nchang2 楼6 年前

解决了,我写的有问题 …

wanxiulan
wanxiulan3 楼6 年前

楼主怎么解决的? 我遇到的问题是真机测试打印advertiseData为空 将advertiseData转化成base64可以显示字符串信息。求解

gangdai
gangdai4 楼6 年前

楼主再问一下 ,你那边现在解析出来是什么格式,我这边安卓和iOS解析出来真机上结果不一样,和APP端结果也不一样???

hwu
hwu5 楼6 年前

OK啦  👍👍👍

guiyingwu
guiyingwu6 楼5 年前

什么系统,微信是什么版本呢?