Как вы получаете реальный UUID ядра периферийного устройства Bluetooth?

В iOS 7 я пишу базовое приложение bluetooth для получения рекламных пакетов от ряда периферийных устройств. Каждое периферийное устройство имеет уникальный UUID в своем рекламном пакете и отображается в приложении LightBlue Sniffer.

Когда я обнаруживаю периферию в центральном менеджере, он назначает UUID, который отличается от UUID в рекламном пакете.

Согласно документам:

"В первый раз, когда центральный менеджер обнаруживает периферийное устройство, система назначает периферийному устройству UUID, представленный новым объектом NSUUID. Ваше приложение может сохранить этот UUID, а затем предоставить его центральному менеджеру для использования при получении этого конкретного периферийного устройства. Периферийные устройства идентифицируется UUID идентификаторов NSUUID, а не объектами CBUUID, которые идентифицируют услуги, характеристики и характеристики периферийного устройства "

Почему это делает это?

Можно ли считать реальный периферийный UUID без подключения к устройству?

Как?

2 ответа

Я думаю, что не существует такой вещи, как "настоящий периферийный UUID". Насколько я понимаю, UUID (для устройства / периферии) - это концепция Apple, а не BLE. Обратите внимание на это обсуждение:

Corebluetooth, как получить уникальный UUID?

OTOH, кажется, что устройства BLE содержат определенный IEEE уникальный MAC/BDADDR-адрес. Я искал способ развернуть независимые от платформы статические конфигурации устройств BLE. Я был обескуражен (UUID Apple не имеет смысла +/-, а MAC/BDADDR, который можно получить на большинстве / всех других платформах, недоступен из CoreBluetooth). К счастью, я заметил, что профиль "Служба информации об устройстве" (0x180A) содержит атрибут "System ID" (0x2A23), который кодирует уникальный MAC-адрес / BDADDR-адрес устройства. Однако я не знаю, обязательно ли для BLE-устройства предоставлять эту услугу.

Как видно из спецификации, идентификатор системы необязателен в службе информации об устройствах.

Ссылка https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.device_information.xml

И на самом деле, сама DIS также является дополнительной услугой, например, Профиль восприятия окружающей среды определяет DIS как дополнительную услугу.

Другие вопросы по тегам