Не путайте ProximityUUID передачи iBeacon с UUID службы GATT. Хотя оба являются 16-байтовыми идентификаторами, обычно представленными в одном и том же шестнадцатеричном формате, оба имеют совершенно разные значения.IBeacon ProximityUUID не может использоваться в качестве UUID службы GATT.
Нет никакого требования, чтобы маяк Bluetooth, передающий кадр iBeacon, размещал какие-либо подключаемые службы GATT.Хотя некоторые производители предлагают услугу GATT в своих аппаратных маяках для настройки своих идентификаторов, а также для других целей, UUID службы GATT обычно не совпадает с ProximityUUID.
Если вы хотите делать то, что вы описываетенеобходимо:
- Узнайте, что ваш производитель маяков вообще обслуживает службу GATT.
- Это да, узнать, что такое UUID службы GATT.Опять же, обычно это не то же самое, что iBeacon ProximityUUID.
Если вы не можете получить информацию от производителя, вы можете найти ее, сканируя на переднем плане (без указанияUUID службы GATT), затем распечатывает обнаруженные идентификаторы UUID службы GATT для устройства, которое вы получаете, вызывая DiscoverServices на CBPeripheral
из результатов сканирования.Вы можете обнаружить, что нет служб, которые не дали бы вам ответа на первый вопрос, указанный выше.
Получив вышеуказанную информацию, вы можете сканировать маяк в фоновом режиме, указав UUID службы GATT, когдазапуск сканирования. В фоновом режиме вы не получите результаты, если вы не укажете UUID службы GATT , и даже если вы сделаете это, результаты будут гораздо медленнее.