Estimote SDK for Android new version 6.0 Marshmallow

I have recently upgraded my Phone to Android version 6.0 …
After upgrade Estimote Application is not able to scan the beacons.

I have checked my Bluetooth settings there are perfectly working and giving me list of beacons (EST) around me.

Will you release the update for Android marshmallow version ?

I am facing the same issue with my NEXUS 5 Marshmallow update. Please let me know when are you coming up with the update

Interesting, I’m on Nexus 5, Android 6.0, and it works for me. Can you try restarting Bluetooth, and if that doesn’t help, the phone itself? If this still doesn’t help, I’ll defer to @wiktor.

Hi heypiotr,

I am using Nexus 5 too. I have done everything I could… Restart my phone… Install the application so many times but it is not working at all.

Same issue for me. Please fix it! Reboots and turning bluetooth on and off didn’t solve the problem.

Turns out that in Android 6.0, you need to enable “Location” services in order to be able to scan for beacons. Enable “Location” in your phone’s Settings, and you should then see beacons.

This is now actually similar to how detecting beacons work on iOS—you also need Location Services allowed for the app there, since knowing which beacon you’re next to might be a bit like knowing where you are.

Technically, you only need the “Location” enabled for an Android app that wants to scan for beacons in the background, and our Estimote app only scans for them in the foreground … but in order to make it work like this, we need to fully update our app to Android SDK 23. You won’t need the “Location” services to use the Estimote app then.

In general, the whole “beacons + Marshmallow” situation is quite complex, and we’re already working on explaining it better in our documentation, adding better support for requesting the appropriate permissions to our SDK, and updating our app.

Hi heypiotr ,

Thanks for the response… Yes, now I am getting the list of Beacons after enabling the Location Service on my Android Device.

When will you update your SDK for android ?

As soon as we’ve finished updating it with improved 6.0 compatibility. Hopefully this week, but I wouldn’t want to promise anything.

All people on this thread: please do watch tracking issue on GitHub on that topic to be notified about changes.


I’m resurrecting this old topic because I need clarification about permissions.
The Android 6.0 release explains to people why they need the location services to be turned on to scan beacons:

To access the hardware identifiers of nearby external devices via Bluetooth and Wi-Fi scans, your app must now have the ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permissions:

  • WifiManager.getScanResults()
  • BluetoothDevice.ACTION_FOUND
  • BluetoothLeScanner.startScan()

I understand that we need the ACCESS_COARSE_LOCATION to start the scan with the startScan() method and to receive data from the ACTION_FOUND string.

So why:[quote=“heypiotr, post:6, topic:2415”]
Technically, you only need the “Location” enabled for an Android app that wants to scan for beacons in the background, and our Estimote app only scans for them in the foreground …[/quote]

Can I avoid activating the location services permissions if I only use the ranging (foreground) technology?

AFAIR, “you only need these permissions to scan in the background” is only true for apps compiled for Android < 6.0, that are being used on an Android >= 6.0. If your app is compiled for Android >= 6.0, and used on an Android >= 6.0, you need the location permissions for both foreground and the background.

EDIT: it’s explained in detail on our Android SDK GitHub:

OK I didn’t understand thanks you!