首页 > 解决方案 > BLE 浏览器 API startNotifications() 返回“GATT 错误:不支持”。

问题描述

我最近在 ESP32 板上实现了一个 BLE 通知系统。我的系统有一个特定的服务 uuid 和一个特定的特性 uuid。我已将 notify 属性设置为特征:

    characteristic = service->createCharacteristic(
    UUID,
    BLECharacteristic::PROPERTY_READ |
    BLECharacteristic::PROPERTY_WRITE |
    BLECharacteristic::PROPERTY_NOTIFY
);

当我将特征的属性记录到 Chrome 开发工具中时,“通知”属性似乎为“真”:

Notify:               true

但是,当我对我的特征使用 startNotifications() 时,我会收到以下错误消息:

Uncaught (in promise) DOMException: GATT Error: Not supported.

这是我使用的代码:

try {
    this.batteryLevelCharacteristic.startNotifications()
    .then(characteristic => {
        characteristic.addEventListener('characteristicvaluechanged',
                                handleCharacteristicValueChanged);
        console.log('Notifications have been started.');
    });
  } catch(e) {
    console.log(e);
  }

我真的不明白这个错误......有什么想法吗?:(

提前致谢 !

注意:我在 macOS Catalina 10.15.7 上使用 chrome 版本 87.0.4280.88

标签: google-chromearduinonotificationsbluetooth-lowenergygatt

解决方案


推荐阅读