Имею отношение к https://github.com/AltBeacon/android-beacon-library-reference для моего проекта.Как заставить Android-приложение обнаруживать сигнал Eddystone?
В документации и некоторых комментариях я выяснил, что они по умолчанию получают сигнал altBeacon. Я хотел знать, как мы можем персонализировать его, чтобы читать другие различные форматы маяков, такие как Eddystone и iBeacon.
Поскольку это открытый исходный код, я хотел бы придерживаться его, а затем персонализировать (обновлять) соответственно.
Например нам нужно установить макет радиомаяка с использованием кода ниже:
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
Edit: Я изменил setBeaconLayout часть кода, как это было предложено в ответ. Тем не менее он не работает.
Я использовал следующий фрагмент кода (см. Статью https://github.com/AltBeacon/android-beacon-library-reference). Я добавил эту часть setBeaconLayout
, чтобы получить сигнал eddystone, который, к сожалению, я не получаю. Но если я удалю то же самое, я могу получить сигналы altBeacon.
public void onCreate() {
super.onCreate();
BeaconManager beaconManager = org.altbeacon.beacon.BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().clear();
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout(BeaconParser.EDDYSTONE_UID_LAYOUT)); //for Eddystone...
Log.d(TAG, "setting up background monitoring for beacons and power saving");
Region region = new Region("backgroundRegion",null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
backgroundPowerSaver = new BackgroundPowerSaver(this);
}
Может ли кто-нибудь помочь мне в этом? Как заставить приложение получать сигнал eddystone?
P.s Может кто-то также предоставить список образцов setBeaconLayout
для разных сигналов. Могу предположить, что, если мы просто изменить ту часть, мы можем принимать сигналы (для формата сигнала, для которого мы устанавливаем расположение.
Большое спасибо заранее.
Спасибо. Теперь я могу обнаружить UID eddystone.Спасибо за исправление ошибки, но можете ли вы подробно рассказать о том, что именно проблема? Из этих трех идентификаторов можно использовать для обнаружения определенных маяков, влияет ли обновление на это? Большое спасибо. – driftking9987
С ошибкой 'Region' действительно соответствовал' Beacon', если у него было меньше идентификаторов. Область подстановочных настроек по умолчанию имеет три идентификатора нулевой точки и только Eddystone-UID 2. Описание изменения находится в первой маркерной точке примечаний к выпуску 2.6.1: https://github.com/AltBeacon/android-beacon-library /releases/tag/2.6.1 Это фиксация, исправленная ошибка: https://github.com/AltBeacon/android-beacon-library/commit/2b6b27c0eb4a1589cdffb3981fe550af1e7e6c23 И это коммит, который создал ошибку: https: // github.com/AltBeacon/android-beacon-library/commit/341be1449743da6137b552d1e9e9544774f1c30 – davidgyoung