Является ли это правильной компоновкой для обнаружения iBeacons с Android Beacon Library от 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?

Ссылка:

Ответ 1

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

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

Ответ 2

Вы можете скачать спецификацию iBeacon (нажмите "Загрузить художественные работы и спецификации" ).

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

Итак, вы точно верны и обнаружите все совместимые iBeacons.

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