Search code examples
androidibeaconaltbeacon

Correct layout to detect Kontakt Beacon on Android with AltBeacon


I'm trying to detect a Kontakt Beacon with the following BeaconLayout:

setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));

but I don't seem to be doing it correctly. The advertising packet structure is like this:

enter image description here

Thanks in advance.


Solution

  • Thanks to @davidgyoung comments, I finally could detect my Kontakt beacon with the following code:

    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) {   }
    }
    

    Please note that I'm using a 2.2 version Kontakt beacon, which is a different version from the layout posted above.