Где доступна информация о маяке, зарегистрированном в Google Proximity API?
Я знаю, что iBeacon только передает сигнал UUID. То, что я читаю о Proximity Beacon API, сбивает с толку. Мы должны зарегистрироваться:
- Рекламируемый идентификатор (обязательно)
- Статус
- стабильность
- Широта и долгота
- Внутренний уровень пола
- Идентификатор места API Google Адресов.
- Текстовое описание
- Произвольные свойства как пары ключ / значение
Передает ли Eddystone всю вышеуказанную информацию, как показано на этом изображении?
2 ответа
Маяки сами передают очень мало информации - обычно только Proximity UUID + основной + вспомогательный (для iBeacons) или мощность передачи BeaconID + (для маяков Eddystone UID).
Proximity Beacon API - это сервис, который позволяет вам "зарегистрировать" маяк вместе с дополнительной информацией для него. Часть этой информации, например:
- PlaceID
- Строительный уровень
- стабильность
- LAT /LNG
- Описание
- свойства
являются полностью необязательными и предназначены только для собственного использования владельца маяка. Вы можете указать точно, где находится маяк с широтой / долготой и PlaceID, или вы можете пропустить их.
Proximity Beacon API также позволяет связывать небольшие фрагменты данных, называемые "вложениями", с вашим маяком. Это то, что люди могут увидеть, когда они сталкиваются с вашими маяками в дикой природе. Содержание и формат их полностью зависит от вас.
Итак, если вы хотите зарегистрировать маяк в PB API, вы ДОЛЖНЫ указать только рекламный идентификатор.
Для маяка Eddystone это будет 16 байт (BeaconID из кадра UID), тогда как для iBeacons это будет 20 байт (16-байтовый iBeacon Proximity UUID + 2-байтовый старший + 2-байтовый младший).
Обратите внимание, что согласно моему ответу на другой вопрос, то, что вы загружаете в функцию регистрации для маяка, представляет собой строку в кодировке base64, представляющую базовые данные BINARY. Итак, получите Buffer или байтовый массив, представляющий рекламный идентификатор, а затем base64 закодируйте его.
Как вы заметили, сам маяк транслирует только свой идентификатор - т.е., UUID + Major + Minor для iBeacon и Namespace + Instance для Eddystone.
Эти дополнительные поля, которые вы регистрируете с помощью Google Proximity API, полностью хранятся на их сервере и не передаются маяком.
Обнаружив маяк, вы можете прочитать его идентификатор из рекламного пакета и использовать его для получения дополнительных данных из Proximity API.
Представьте, что у вас есть маяк с идентификатором X
, Вы загружаете данные маяка в Proximity API, например, Advertised ID = X
, description = "Мой маяк". Позже, когда ваше приложение обнаружит этот маяк, оно может перейти к Proximity API и сказать "дайте мне данные для маяка". X
"и вот как вы получаете доступ к дополнительной информации, например, к описанию" Мой маяк ".
Изображение, на которое вы ссылаетесь, взято из учебника Proximity API, который я помню в Интернете, и это просто упрощение, поскольку, строго говоря, маяк передает не всю эту информацию, а только идентификатор. Но этого идентификатора достаточно для извлечения дополнительных данных из Proximity API (при условии, что у вас есть подключение к Интернету), поэтому вы можете думать о Proximity API как о чем-то, что расширяет ваши знания о маяке, и я думаю, что именно поэтому изображение показывает это сюда.