Является ли это правильной компоновкой для обнаружения 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 придерживаются этого.