AltBeacon: библиотека Android Beacon. Как определить регион для Eddystone?

Я разрабатываю приложение, которое обеспечивает фоновый мониторинг Beacon. Я хотел бы начать ранжирование, когда пользователь входит в маяк из определенного региона. К сожалению, я не могу определить регион для профиля Eddystone. Когда я создаю объект региона с Eddystone NamespaceID, идентификатор выдает исключение синтаксического анализа ...

Region region = new Region("backgroundRegion",Identifier.parse("f7826da6bc5b71e0893e"), null, null);

Когда идентификатор имеет формат UUID или целое число в соответствии с документами (https://altbeacon.github.io/android-beacon-library/javadoc/org/altbeacon/beacon/Identifier.html) синтаксический анализ работает нормально. Итак, когда для Beacon установлено значение Eddystone, NamespaceID является первым идентификатором, который должен определять регион точно так же, как UUID является первым идентификатором в профиле iBeacon. Я правильно понимаю? Если я прав в этой ситуации, я не могу разобрать Eddystone NamespaceID как идентификатор для региона и не могу отслеживать, вводит ли пользователь маячки, которые настроены на использование профиля Eddystone. Пожалуйста, поправьте меня, если я ошибаюсь, и скажите, пожалуйста, как определить область для маяков Eddystone.

Спасибо!


person Zygi    schedule 17.03.2016    source источник


Ответы (1)


Вы можете определить регион, который соответствует идентификатору пространства имен Eddystone-UID, следующим образом:

Region region = new Region("my-beacon-region", Identifier.parse("0xf7826da6bc5b71e0893e"), null, null);

Хитрость заключается в том, чтобы добавить к идентификатору префикс «0x», чтобы указать библиотеке, что идентификатор является многобайтовым шестнадцатеричным значением. Для удобства префикс не нужен при разборе идентификаторов из UUID или целочисленных значений, но он необходим для многобайтовых шестнадцатеричных значений, иначе не было бы возможности различать «0x1000» (4096 десятичных) и «1000» (1000 десятичных. ).

Дополнительные сведения о работе с Eddystone-UID с помощью Android Beacon Library см. Здесь:

http://altbeacon.github.io/android-beacon-library/eddystone-how-to.html

person davidgyoung    schedule 17.03.2016