BLE: реклама локального имени и сервиса UUID из фона iOS - PullRequest
0 голосов
/ 18 марта 2019

Согласно документации iOS, когда приложение iOS, которое использует BLE в качестве периферийного устройства, переходит в фоновый режим, имя периферийного устройства не объявляется, а все идентификаторы UUID службы помещаются в специальную область «переполнения», их может обнаружить только iOS.устройство, которое явно сканирует их.

Я прослушал пакеты BLE, отправленные по радиоканалу, когда приложение находится в фоновом режиме.Нет локального имени и служебных UUID-данных.Существует область «переполнения», которая кодирует UUID службы.Краткое обсуждение можно найти здесь: https://github.com/crownstone/bluenet-ios-basic-localization/blob/master/BROADCASTING_AS_BEACON.md

Я хотел бы знать, есть ли какой-нибудь способ определить фактический UUID службы, рекламируемый по данным в области «переполнения».Документация iOS гласит, что, когда приложение рекламирует в качестве периферийного устройства BLE в фоновом режиме, другое приложение iOS может найти его, явно указав идентификаторы UUID службы для поиска.Таким образом, должен быть способ выяснить фактический UUID из данных переполнения.

Любые указатели на это будут полезны.

1 Ответ

0 голосов
/ 18 марта 2019

Нет.Данные в области переполнения хэшируются (отправка нескольких 128-битных UUID будет слишком большой для рекламного пакета).Я не верю, что хэш задокументирован, но я сильно подозреваю, что он основан на фильтре Блума, так что Apple может вероятностно упаковать неограниченное количество UUID в очень ограниченное пространство рекламного пакета.

Плюсом всего этого является то, что это означает, что данные отсутствуют в рекламном пакете (и действительно не могут быть).Вам нужно будет подключиться к устройству, чтобы узнать его услуги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...