·1.uni.createBLEConnection()成功的回调里面
2.调用uni.onBLECharacteristicValueChange,
3.setTimeout 2秒后执行uni.getBLEDeviceCharacteristics 在成功回调里面
4.循环调用uni.notifyBLECharacteristicValueChange
- 发布:2020-08-14 17:08
- 更新:2024-04-28 13:07
- 阅读:2064
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.5
手机系统: Android
手机系统版本号: Android 10
手机厂商: vivo oppo 三星等,所有安卓机
手机机型: 所有安卓机
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
app 安卓机 也能监听到多个 characteristic服务的变化指
app 安卓机 也能监听到多个 characteristic服务的变化指
实际结果:
在小程序 ios跟安卓机都能监听到多个 characteristic服务的变化指
在app ios也能监听到多个 characteristic服务的变化指
但是在app 安卓机就只能监听到一个 characteristic服务的变化指,无法监听到多个characteristic服务的变化指
在小程序 ios跟安卓机都能监听到多个 characteristic服务的变化指
在app ios也能监听到多个 characteristic服务的变化指
但是在app 安卓机就只能监听到一个 characteristic服务的变化指,无法监听到多个characteristic服务的变化指
bug描述:
·1.uni.createBLEConnection()成功的回调里面
2.调用uni.onBLECharacteristicValueChange,
3.setTimeout 2秒后执行uni.getBLEDeviceCharacteristics 在成功回调里面
4.循环调用uni.notifyBLECharacteristicValueChange
在小程序 ios跟安卓机都能监听到多个 characteristic服务的变化指
在app ios也能监听到多个 characteristic服务的变化指
但是在app 安卓机就只能监听到一个 characteristic服务的变化指,无法监听到多个characteristic服务的变化指
//已知有一下两个特征服务 app端: 安卓机只能监听到 2A36的服务返回值, ios能收到两个服务返回值, 小程序端也可以监听两个服务值
// 2A35服务主要负责实时的心率值回传
// 2A36服务主要负责最后测量结果的血压,收缩压值回传
/ {
"uuid": "00002A35-0000-1000-8000-00805F9B34FB",
"properties": {
"read": false,
"write": false,
"notify": false,
"indicate": true //-----------------------
}
}, {
"uuid": "00002A36-0000-1000-8000-00805F9B34FB",
"properties": {
"read": false,
"write": false,
"notify": true, //--------------------------
"indicate": false
}
} /
uni.onBLECharacteristicValueChange(CALLBACK)
监听低功耗蓝牙设备的特征值变化事件。必须先启用 notifyBLECharacteristicValueChange 接口才能接收到设备推送的 notification。
云风0214 - 前端资深小学生
Notify() {
setTimeout(() => {
uni.notifyBLECharacteristicValueChange({
deviceId: "DC:0D:30:00:1A:FA",
serviceId: "0000FFF0-0000-1000-8000-00805F9B34FB",
characteristicId: "0000FFF3-0000-1000-8000-00805F9B34FB",
state: true,
success: res => {
console.log(res, '------读取数据111111');
uni.onBLECharacteristicValueChange(res => {
console.log('蓝牙设备特征值变化111111', res)
// this.data.push(this.ab2str(res.value))
})
uni.notifyBLECharacteristicValueChange({
deviceId: "DC:0D:30:00:1A:FA",
serviceId: "0000FFF0-0000-1000-8000-00805F9B34FB",
characteristicId: "0000FFF1-0000-1000-8000-00805F9B34FB",
state: true,
success: res => {
console.log(res, '------读取数据222222');
uni.onBLECharacteristicValueChange(res => {
console.log('蓝牙设备特征值变化222222', res)
// this.data.push(this.ab2str(res.value))
})
setTimeout(() => {
uni.writeBLECharacteristicValue({
deviceId: 'DC:0D:30:00:1A:FA',
serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB',
characteristicId: '0000FFF2-0000-1000-8000-00805F9B34FB',
value: this.string2buffer(
'read:'),
writeType: 'write',
success: res => {
console.log('发送成功',
res)
},
fail: err => {
console.log('发送失败',
err)
}
})
uni.writeBLECharacteristicValue({
deviceId: 'DC:0D:30:00:1A:FA',
serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB',
characteristicId: '0000FFF2-0000-1000-8000-00805F9B34FB',
value: this.string2buffer(
'read:'),
writeType: 'write',
success: res => {
console.log('发送成功',
res)
},
fail: err => {
console.log('发送失败',
err)
}
})
}, 1000);
},
fail: err => {
console.log('读取数据失败', err)
}
})
},
fail: err => {
console.log('读取数据失败', err)
}
})
}, 3000);
},