Как правильно выбрать BeaconLayout для маяков Estimote и Gimbal?

Мне бы хотелось, чтобы версия 2.0 библиотеки маяков Android могла правильно определять как маяки Estimote старого стиля (модели до 2013 года, не поддерживающие технологию iBeacon), так и маяки Gimbal. Я знаю, что маяки Gimbal имеют зашифрованные идентификаторы, поэтому они не могут быть прочитаны напрямую. Но я бы по крайней мере хотел бы поделиться кодом, который может обнаружить, что он есть.

Вот что у меня есть:

Код для обнаружения маяка Gimbal (без чтения зашифрованных идентификаторов):

BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
BeaconManager.getBeaconParsers().add(new BeaconParser().
       setBeaconLayout("m:0-3=ad7700c6"));
beaconManager.bind(this);

Код для обнаружения маяка Estimote в середине 2013 года (без чтения идентификаторов, потому что я не знаю, как):

BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
BeaconManager.getBeaconParsers().add(new BeaconParser().
       setBeaconLayout(""m:0-3=2d24bf16""));
beaconManager.bind(this);

Кто-нибудь (особенно ребята из Estimote или Gimbal) имеет какую-либо дополнительную информацию о смещениях байтов выше, что позволит декодировать как можно больше информации из передач? Я полагаю, что в каждом случае нам необходимо отключить UUID службы bluetooth, который, вероятно, правильно представлен большим количеством байтов, чем в приведенных выше примерах. Я хотел бы знать UUIDs полного обслуживания, а также любые другие читаемые поля, отправленные в рекламных объявлениях.

1 ответ

Для оценки

beaconManager.getBeaconParsers().
      add(new BeaconParser().
      setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
Другие вопросы по тегам