Это правильный макет для обнаружения iBeacons с помощью библиотеки Android Beacon от AltBeacon?


Я успешно изменил пример реализации приложения на Android Beacon Library используя следующие макет маяка, так что он обнаруживает устройство iBeacon, которое у меня есть под рукой:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
        beaconManager.bind(this);
    }
}

будучи новичком во внутренних пакетах BLE, я не уверен, что это правильный макет для использования. Библиотека поддерживает тег AltBeacon стандартные, так и его документации, не говоря уже о том, как обнаружить iBeacon в устройства.

  • будет ли этот код обнаруживать все устройства iBeacon? то есть это m: префикс слишком ограничительный или это правильная последовательность байтов, которая соответствует спецификации iBeacon?
  • аналогично, остальная часть макета точно соответствует спецификации iBeacon?

ссылки:

2 86

2 ответа:

Это сработало и для меня тоже!

Я не думаю, что вам нужно соответствовать части 4c00, потому что это идентификатор производителя, поэтому вы, вероятно, можете оставить это и начать с m:2-3=0215 все остальное выглядит правильно, и это, кажется, работает.

можно скачать iBeacon spec (нажмите "Загрузить иллюстрации и спецификации").

в текущей версии идентификатор компании должны быть 0x4C00, и тип маяка должен быть 0x0215. Все остальные поля обязательны, и как вы указали.

Так что да, вы совершенно правы, и он будет обнаруживать все совместимые iBeacons.

OT: он также указывает, что рекламный интервал должен быть 100 мс, но я серьезно сомневаюсь во всех iBeacons придерживайтесь этого.