Search code examples
iosiphonecore-locationibeacon

Delay in detecting iBeacons


I am doing region monitoring with iBeacons using CoreLocation framework . Everything works well when I emulate a beacon using an app like "Locate for iBeacon". I can detect the beacons instantly when I turn on the beacon transmission.

However when testing with real beacons provided by Radius it takes really long time to detect the beacons.

I have enabled the notifyEntryOnDisplay as well .

Is there a difference when transmitting from a real beacon and a emulated one ?


Solution

  • When you use iOS to transmit as an iBeacon using Locate for iBeacon or another app, its radio transmissions functionally identical to a properly designed hardware iBeacon configured with the same identifiers. Simply put, an iOS device is not an emulated iBeacon, it is an iBeacon.

    The detection times between these devices should be identical on average, so there may be a test setup issue.

    Are you using the exact same program to detect the beacon in each case? Are both test cases with an app consistently in the background when you do each test? How do you turn on the hardware beacon (or make it come into range)? What else could be different?

    Full disclosure: I am Chief Engineer for Radius Networks and author of iBeacon Locate.

    EDIT: If you want to compare detection times between different iBeacon types, you must use the exact same procedure across device types, as varying the measurement technique can alter your results. This can be challenging for battery powered beacons (where you must open them up and take out the battery then put it back in.)

    When measuring background detection times, put NSLog statements in your didEnterRegion and didExitRegion callbacks, then use the timestamps in your log window for all comparisons. Be sure to get an exit event before expecting an entry event.

    Also, understand that detection times may vary for the same beacon from one measurement to the next, so take multiple measurements.

    You can read about the techniques I have used to get accurate detection time measurements here: http://developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html