JS API веб Bluetooth: ошибка startNotification () не поддерживается - PullRequest
0 голосов
/ 12 февраля 2020

Я продолжаю сталкиваться с «Ошибка Гатта: не поддерживается» всякий раз, когда я вызываю startNotifications (). Я заглянул на страницу совместимости и реализации, и похоже, что эта функция должна быть реализована (я использую Chrome 80 на Windows 10, я также включил экспериментальные веб-функции в chrome, но это не так исправить это). Я не могу понять, почему ошибка продолжает появляться.

Вот код:

function connect(){
    return my_device.gatt.connect()
    .then(server => {
        console.log("Getting Service...");
        return server.getPrimaryService(0x1800);
    })
    .then(service => {
        console.log("Getting Characteristic...");
        return service.getCharacteristic("00002a00-0000-1000-8000-00805f9b34fb");
        //return service.getCharacteristic("00002a01-0000-1000-8000-00805f9b34fb");
    })
    .then(characteristic => {
        console.log("Characteristic Type: " + characteristic);
        my_character = characteristic;
        console.log("Before Notification");
        return my_character.startNotifications().then(_ => {
          console.log('Notifications started');
          my_character.addEventListener('characteristicvaluechanged',
              handleNotifications);
        });
    })
}

1 Ответ

2 голосов
/ 12 февраля 2020

Я понял это. Я использовал неправильную характеристику c uuid и получил канал, который не принимал уведомления. Что сбивает с толку, вместо того, чтобы выдавать обычную ошибку «не разрешено», вместо этого выдается ошибка «не поддерживается».

Вы можете проверить, какие свойства c поддерживает характеристика с помощью характеристики c .properties. [# Вещь, которую вы хотите проверить]

...