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.
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.
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: