Eddystone: Android SDK - listener always gets empty list

I am using code very similar to the quickstart to register for Eddystone beacon notifications.

I have updated my beacon to the latest OS (3.1.1) and enabled Eddystone-UID.

I receive regular “onEddystonesFound()” callbacks, but the list of Eddystone beacons found is always empty.

I do not understand what I am doing wrong?

Never mind.

After a device reboot, the problem resolved itself. It seems like it may have been something to do with having multiple instances of BeaconManager?

Anyway, whatever it was is now resolved.

I have the same Problem but a device reboot doesn’t help.

I also receive “onEddystonesFound()” callbacks and beacon list (List eddystones) is always empty.

Any suggestions?

What device are you testing with? Certain Android devices have problems with their Bluetooth stacks, which results in weird behaviors like this one.

Do you have one or more beacon managers in your app?

I am using a Samsungs Galaxie S5 for testing. My app has two beaconmanager. The Demo app has the same effect. It works with the Estimote but not with the Eddystone functionality.

Thanks

@Sascha Can you be more explicit when you say that it works with Estimote and bot with Eddystone?

I downloaded the Estimote/Android-SDK from github and compiled the Deoms-App (Version 0.8.2) with Android Studio 1.3. For testing purposes I use my Samsung Galaxy S5. The Distance Demo gives me all details related my three Beacons (OS 3.1.1) but the Eddystone Demo only shows me the toolbar message “Found beacons with Eddystone protocol: 0” and the Beacon list is empty.

So I just inserted a simple log message for debugging to observe if the Callback works.

beaconManager.setEddystoneListener(new BeaconManager.EddystoneListener() {
  @Override
  public void onEddystonesFound(List<Eddystone> eddystones) {
    toolbar.setSubtitle("Found beacons with Eddystone: " + eddystones.size());
    adapter.replaceWith(eddystones);
    Log.d(TAG, "Adapter count: " + adapter.getCount());
  }
});

The logcat shows me the call about every second but the array list is empty.

Currently, Estimote Beacons can only broadcast one type of a packet at a time—i.e., either the default one, picked up by the Distance Demo, or one of the Eddystone packets (UID or URL), picked up by the Eddystone Demo.

If you want your beacons to show up in the Eddystone Demo, you’ll need to change their broadcasting scheme to Eddystone—e.g., via the Estimote app, which you can get from Google Play Store.

I’ve got it!

I didn’t know that I have to change the Primary Packet Type. So it works now.

Many thanks.

1 Like