Веб-Bluetooth - Могу ли я получить список всех служб на устройстве? - PullRequest
0 голосов
/ 17 апреля 2020

Я основываю свой проект на примере проекта обнаружения услуг и характеристик: https://googlechrome.github.io/samples/web-bluetooth/discover-services-and-characteristics.html

Я пытаюсь зарегистрировать список всех доступных служб на устройстве в консоль Chrome. Есть ли возможность сделать это? Потому что, если я не ввожу идентификатор службы, я сталкиваюсь с ошибкой securityError: «Argh! SecurityError: Origin не разрешен доступ к какой-либо службе.

Я знаю, что NRF Connect может обнаруживать все сервисы.

Итак, можно ли получить список всех сервисов с устройства без предварительной настройки сервисов?

Будут признательны любые идеи.

1 Ответ

0 голосов
/ 18 апреля 2020

Краткий ответ: Нет, вам нужно перечислить службы, к которым вы хотите получить доступ.

Веб-Bluetooth разработан с учетом конфиденциальности пользователя и требует, чтобы службы, к которым приложение хотело бы получить доступ, были перечислены в * 1003. * requestDevice вызовите, чтобы браузеры могли предлагать пользователям необходимое количество сообщений. Есть способ запросить подключение к любому устройству acceptAllDevices: true, но нет способа запросить доступ ко всем службам на устройстве.

Когда вы разрабатываете и должны понимать, что Chrome можно увидеть на устройстве, которое вы можете использовать chrome://bluetooth-internals/#devices. Запустите сканирование, чтобы найти устройства, а затем выберите «Проверить». (Только некоторые устройства будут принимать соединение.)

NRF Connect также является превосходным и более мощным инструментом.

Текущий дизайн для Bluetooth через Bluetooth не поддерживает Построение этого уровня диагностики c приложения. Подробнее о модели безопасности и конфиденциальности для веб-Bluetooth можно узнать из Спецификации веб-Bluetooth .

Одна хорошая статья для разработчиков на эти темы: https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web

...