getBLEDeviceServices(deviceId) {
console.log(deviceId);
var that = this
uni.getBLEDeviceServices({
deviceId,
success: (res) => {
console.log(res); //这里又密码服务 0000EEE0 通过这个服务判断是否显示密码框
console.log(res.services.length);
for (let i = 0; i < res.services.length; i++) {
console.error('7777777777777', res.services[i].isPrimary);
if (i == 0 || i == 1) {
// if (res.services[i].isPrimary) {
that.getBLEDeviceCharacteristics(deviceId, res.services[i].uuid)
}
}
var times = setInterval(() => {
// console.log(that.uuid);
if (that.uuid) {
// console.log(hhhhh);
clearInterval(times)
that.fistHandshake()
}
}, 500);
}
})
}, //获取蓝牙设备所有服务(service)。
//获取所有特征值
getBLEDeviceCharacteristics(deviceId, serviceId) {
console.error(deviceId, serviceId);
uni.getBLEDeviceCharacteristics({
deviceId,
serviceId,
success: (res) => {
// 这里有rxp数据的uuid 并且显示了每个特征值是否可读写
//
console.log(res);
console.error(res.characteristics.length);
for (let i = 0; i < res.characteristics.length; i++) {
let item = res.characteristics[i]
if (item.properties.read) {
uni.readBLECharacteristicValue({
deviceId,
serviceId,
characteristicId: item.uuid,
success(res) {
},
fail: function(res) {
// 读取失败的处理逻辑
console.error('特征值读取失败:', res);
},
})
}
}
console.error("222222222222222222222222222222", this.namewrite, this.rxpyes);
},
fail(res) {
console.error('getBLEDeviceCharacteristics', res)//总是报错这里
},
complete(res) {
console.error('getBLEDeviceCharacteristics', res)
}
})
fail(res) {
console.error('getBLEDeviceCharacteristics', res)//总是报错这里
},这里总是报错 10005 只有第一次的特征值成功了 第二个特征值读取就报10005 但有时候就会都成功 同一个蓝牙 都距离手机很近
2 个回复
apppws
我也是遇到这样的问题,安卓没有问题。IOS获取到特征值监听的时候 会报 10005 错误
s***@163.com
请问这个问题解决了么