对此我真的很陌生,但是(通过Internet搜索其他项目)我已经知道MiBand具有身份验证过程。
问题是我试图在不响应连接的情况下编写唯一的UUID服务,并且总是在响应,并且总是说乐队没有该UUID服务。
我正在使用React-Native-BLE-PLX库。
从图像中可以看出,我使用设备的服务UUID,因为我无法获得任何其他服务,但始终表示该服务不存在。
search(){
this.manager = new BleManager();
this.manager.startDeviceScan(null, null, (error, device) => {
if (error) {
console.log(error.message);
return;
}
if (device.name == 'Mi Band 3') {
this.manager.stopDeviceScan();
this.device = device;
this.connect();
}
});
}
connect() {
console.log("CONNECTING...");
this.device.connect()
.then(async (device) => {
console.log("CONNECTED!!!");
console.log("DEVICE CONNECTED:\n");
console.log(device);
this.auth(device);
// return this.manager.discoverAllServicesAndCharacteristicsForDevice(device.id)
})
// .then((device) => {
// console.log(device);
// this.send(device);
// })
// .catch((error) => {
// console.log("ERROR: ");
// console.log(error);
// });
}
async auth(device) {
console.log("DEVICE: \n");console.log(this.device);
console.log("DEVICE'S SERVICE UUID: \n" +this.device.serviceUUIDs[0]);
console.log("TRYING");
this.manager.writeCharacteristicWithoutResponseForDevice('D7:2D:F8:F2:24:3F', '0000fee0-0000-1000-8000-00805f9b34fb', '00000009-0000-3512-2118-0009af100700', 0x01 + 0x00 + new Buffer("OLA MUNDO"))
.then((device) => {
console.log("STUFF GOING ON:\n");
console.log(device);
})
.catch((error) => {
throw error;
});
}
真的需要帮助,并为此表示感谢。
如果有什么我需要描述的,请告诉我。
答案 0 :(得分:0)
连接后,必须首先发现服务和特性。之后,您可以启动身份验证部分。但是,您的身份验证部分完全错误。做点谷歌搜索以找出正确的方法...