Как вы получаете реальный 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-устройства предоставлять эту услугу.
Как видно из спецификации, идентификатор системы необязателен в службе информации об устройствах.
И на самом деле, сама DIS также является дополнительной услугой, например, Профиль восприятия окружающей среды определяет DIS как дополнительную услугу.