Я пытаюсь обнаружить Kontakt Beacon со следующим BeaconLayout:
setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));
но я, кажется, не делаю это правильно. Структура рекламного пакета выглядит следующим образом:
Спасибо заранее.
Я пытаюсь обнаружить Kontakt Beacon со следующим BeaconLayout:
setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));
но я, кажется, не делаю это правильно. Структура рекламного пакета выглядит следующим образом:
Спасибо заранее.
Благодаря комментариям @davidgyoung, я наконец обнаружил свой маяк Kontakt со следующим кодом:
public class MainActivity extends Activity implements BeaconConsumer {
protected static final String TAG = "RangingActivity";
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
beaconManager.bind(this);
}
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.d(TAG, "The first beacon I see is about "+beacons.iterator().next().getDistance()+" meters away.");
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
Обратите внимание, что я использую маяк версии Kontakt версии 2.2, который отличается от размещенной выше версии.
Несколько проблем с вашим beaconLayout:
Байт-смещения в строке beaconLayout начинаются с данных производителя (байт 6 в таблице, который вы показываете), поэтому вам нужно вычесть 6 из всех ваших смещений.
В таблице показано, что в маяке есть только три идентификатора, но ваша строка beaconLayout имеет четыре. Обратите внимание, что первый идентификатор длиной 16 байтов.
Если вы его заработаете, напишите правильный beaconLayout, который вы использовали.