Web蓝牙API错误:没有与UUID匹配的服务

时间:2019-09-09 09:26:30

标签: javascript browser bluetooth bluetooth-gatt web-bluetooth

我正在玩Web Bluetooth API,并且试图从浏览器中获取设备(Xiaomi MyBand,BLE设备)的当前电池电量。
我是蓝牙Web api的新手,请记住,也许我缺少一些基本知识。

我的设置:

  • Chrome版本76.0.3809.132(64位)
  • macOS Mojave v10.14

这是我的Javascript代码,单击按钮时会调用此函数:

  navigator.bluetooth
    .requestDevice({filters: [
        { name: 'MI' }, 
        { services: ['battery_service'] }
    ]})
    .then(device => {
      console.log(1)
      return device.gatt.connect()
    })
    .then(server => {
      console.log(2)
      return server.getPrimaryService('battery_service')
    })
    .then(service => {
      console.log(3)
      return service.getCharacteristic('battery_level')
    })
    .then(characteristic => {
      console.log(4)
      return characteristic.readValue()
    })
    .then(value => {
      console.log(5)
      console.log(value.getUint8(0))
    })
    .catch(error => { 
       console.log('error: ', error) 
    })

我登录了编号 2 ,然后出现此错误: Chrome console

  

错误:NotFoundError:在设备中找不到与UUID 0000180f-0000-1000-8000-00805f9b34fb匹配的服务。

我被困住了。对我需要做什么有任何想法吗?

完整的示例代码在这里:https://github.com/baumannzone/browser-apis/blob/master/src/views/Bluetooth/Example1.vue

实时演示https://browser-apis.netlify.com/#/bluetooth

谢谢大家。

0 个答案:

没有答案