Фильтрация маяка Alt по идентификатору производителя и UUID начинается с указанного формата c - PullRequest
0 голосов
/ 08 января 2020

В одном из моих вариантов использования требуется отфильтровать все маяки, сгенерированные указанным c производителем, а UUID начинается со строки c.

Библиотека маяков ALT (https://altbeacon.github.io/android-beacon-library/javadoc/reference/org/altbeacon/beacon/Region.html ) предоставляет класс Region для фильтрации маяка на основе ID1, ID2, ID3.

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

Документация API с приветствуется пример кода для настройки библиотеки ALT Beacon для фильтрации, что помогает избежать дополнительной реализации логики фильтрации c в приложении.

1 Ответ

0 голосов
/ 09 января 2020

Фильтрация по префиксу UUID необычна, но это возможно путем определения пользовательского макета маяка и определения дополнительного идентификатора, который будет префиксом UUID. Поскольку этот новый дополнительный идентификатор будет обрабатываться как независимый идентификатор, он не будет работать как префикс строки - его представление по умолчанию будет шестнадцатеричной строкой (без черточек).

Если вы хотите выполнить фильтрацию по первые пять байтов UUID для iBeacon, вы должны настроить синтаксический анализатор маяка следующим образом:

beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:2-3=0215,i:4-8,i:4-19,i:20-21,i:22-23,p:24-24")); // note the new 5 byte prefix identifier:  i:4-8

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

Вы можете настроить область, чтобы соответствовать первым пяти байтов этого UUID, 2F234454-CF6D-4A0F-ADF2 -F4911BA9FFA6 примерно так:

Region region = new Region("prefixRegion", "0x2F234454CF", null, null);

Если вы хотите, чтобы длина префикса отличалась от 5, просто отрегулируйте часть i: 4-8 приведенного выше макета, чтобы он заканчивался на смещение отличается от 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...