2

我对此真的很陌生,但我已经知道(通过通过 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;
  });

}

真的需要帮助和感谢。

如果有什么我需要描述的,请告诉我。

4

1 回答 1

0

连接后,您必须首先发现服务和特征。之后,您可以开始身份验证部分。但是,您的身份验证部分是完全错误的。做一些谷歌搜索,找出如何正确地做到这一点......

于 2019-02-24T20:03:21.057 回答