Currently my company is working with an OS developer. We have an app that uses beacons but the results are very erratic to say the least.
I’d love to hear from others who have deployed beacons about the time it takes to shoot a message from the beacon to a smartphone.
We have an IOS app and Andriod.
Currently in kill mode the app isn’t producing the results I’d like. Which is simply a user walks past a shop and the beacon message is pushed to the phone. ideally it’s all gotta happen within 20 odd seconds or sooner. Estimote are saying the beacon has a range of 50 meters unobstructed. My phone is definitely not picking up the signal from 50 meters out!
It’s taking like 40 seconds thru to 1 and a half minute and sometimes up to 5 minutes.
These results are very frustrating as I thought that the technology would be more stable and fire off without all this variability.
Just to elaborate a bit more. The app always has location on and I always have bluetooth on when testing. The app uses monitoring and ranging. If the app is on it works much better however in a normal setting you wouldn’t expect users to have the app on.
I realize that each app is different and settings may vary from IOS to Andriod but surely this technology works 90% reliably
and does what you see in all the promo clips.
Would love to hear from anyone who has first hand results with beacons in the field.
Thanks for a detailed post!
Actually, there’s no “connection” involved—we use public Bluetooth advertising. Every 300 ms (customizable), the beacon broadcasts its presence and its identifier to anyone in range that’s listening.
That “must be listening” is usually the cause of the delay. On Android for example, our SDK by default only scans for beacons every 30 seconds, and the scan takes 10 seconds. This means that in the worst-case scenario, it might take up to 40 seconds to detect a beacon. Or, if the Android device happens to miss the beacon completely during that 10-second scan (believe it or not, it happens sometimes, especially with the older Android devices!), it further delays the detection.
On iOS, it’s a bit better => iPhone 5 and later use “passive” Bluetooth scanning that’s going on all the time in the Bluetooth chip, which is why most of the time, the detection should be near-instantaneous. However, if the phone is in deep sleep, we noticed that it might delay the detection. (We assume that the Bluetooth chip detects the beacon, but it’s not enough to wake up the phone/CPU.) Or, if for some reason, passive scanning stops working and iOS reverts back to “normal” scanning—which seems to be about once every 15 minutes! (That is rather rare, usually because the phone in total is set to scan for more than 30 beacon-regions among all its apps.)
On Android, you can customize the scanning intervals with
setBackgroundScanPeriod method. iOS sadly doesn’t have any APIs to modify the Bluetooth scanning behavior.