Poor scanning reliability on Android

I’m testing the beacons on both iOS 8 and 2 Android 5 devices at close range (< 1m). The iOS Estimote App has great reliability at detecting all 3 beacons and always shows them in the radar or list. I can see subtle variations in distance and this reflects as small movements in the beacons on the radar. All good there.

On both my Android devices (Nexus 7 and HTC M8) the Estimote App experience is very unreliable. Just leaving the “Beacons in range” view open it will randomly detect the beacons that are right next to the device. Occasionally all 3 are visible but it’s not long before each disappears from view. They may reappear or not. There is no pattern I can discern from observation. If I wait long enough none will reappear. Navigating back and selecting Devices again to start fresh seems to kick things into life but usually it is the same experience.

So far on Android I have never been able to have all 3 beacons continuously showing on the radar as I do see on the iOS app. And this is with all 3 beacons within 1m of the device.

I’m uncertain if it is the Android SDK or Android itself because other 3rd party Android beacon scanners show the same unreliable experience.

Do other third party scanners work unreliably also?

Yes. I’ve tried several 3rd party scanners and all have the same experience on my 2 devices. Hence my last sentence indicating I don’t think it is necessarily an Estimote issue but rather an Android issue.

I came across this issue describing a bug in Android that may have something to do with it: https://code.google.com/p/android/issues/detail?id=65863

I’d really like to try a different Android device like the Nexus 5 (I don’t have one though) as the article suggests that it continuously scans with no issue. This will be a real problem for iBeacon Android support if this is the real issue.

The only resolution apparently is to retrigger the scan after an elapsed time which just seems a real hack.

Yes, those issues are inconsistent across devices. But on the plus side, Estimote SDK restarts scan periodically to achieve that.