Как правильно выбрать 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"));