小程序
小游戏
企业微信
微信支付
扫描小程序码分享
连接体重秤(广播模式)设备,实时体重数据是通过广播数据获取,在ios上wx.onBluetoothDeviceFound方法会根据广播数据的变化多次搜索到蓝牙设备,从而提取广播数据。但是在android设备上,只能搜索到一次设备。
请问安卓上是否作了去重复处理。那如果要通过小程序 监听蓝牙广播应该如何操作
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
数据格式是 '551A2B......' (具体根据蓝牙协议)
之前我遇到个问题 在微信6.5.7 解析广播数据 需要使用data = wx.base64ToArrayBuffer(advertisData)
str = buf2hex(data)
之后的版本直接使用buf2hex(advertisData)
解析notify数据的时候 直接使用buf2hex(res.value)
你可以尝试一下
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); 返回的数据什么格式?还需要后续处理吗?应为这样得到的数据和我在app(iOS)端获取的数据不一样?🙏🙏🙏
谢谢,已经可以正常获取了。但是红米手机上(android4.4.4)参数无效。
还有一个小问题,两个系统广播数据类型不同,Ios广播数据需要base64ToArrayBuffer转换后才是ArrayBuffer类型
ios:
var data = wx.base64ToArrayBuffer(advertisData)
var str = buf2hex(data)
android:
buf2hex(advertisData)
function buf2hex(buffer) {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}
可以先尝试下这个参数,后面会公开出去。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
数据格式是 '551A2B......' (具体根据蓝牙协议)
之前我遇到个问题 在微信6.5.7 解析广播数据 需要使用data = wx.base64ToArrayBuffer(advertisData)
str = buf2hex(data)
之后的版本直接使用buf2hex(advertisData)
解析notify数据的时候 直接使用buf2hex(res.value)
你可以尝试一下
Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); 返回的数据什么格式?还需要后续处理吗?应为这样得到的数据和我在app(iOS)端获取的数据不一样?🙏🙏🙏
谢谢,已经可以正常获取了。但是红米手机上(android4.4.4)参数无效。
还有一个小问题,两个系统广播数据类型不同,Ios广播数据需要base64ToArrayBuffer转换后才是ArrayBuffer类型
ios:
var data = wx.base64ToArrayBuffer(advertisData)
var str = buf2hex(data)
android:
buf2hex(advertisData)
function buf2hex(buffer) {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}
startBluetoothDevicesDiscovery
可以先尝试下这个参数,后面会公开出去。