13 November 2013

There has been lots of confusion about how Beacon monitoring and ranging work in the background on iOS. In general ranging only works in the foreground, but monitoring updates can happen in the background. There are two ways to configure background monitoring, and even when done properly updates can take a long time to come. Because these delays, some people mistakenly believe that monitoring in the background doesn’t work.

##Summary

The tables below summarizes whether you can get monitoring updates under various conditions, and how long it might take to get them.

When the app is in the foreground:

ConditionMax time to detect a region change
App ranging 1 second
App not rangingup to 15 minutes

When the app is not in the foreground:

ConditionMax time to detect a region change
Phone awakened, notifyEntryStateOnDisplay=YES1 second
Phone awakened, notifyEntryStateOnDisplay=NONEVER
UIBackgroundModes=location ONup to 15 minutes
UIBackgroundModes=location OFFup to 15 minutes

Note: “Phone awakened” means pressing either the shoulder button or the home button when the phone display was off. The detection times, in this case, reflect the time from when the screen turns on.

How to maximize beacon responsiveness

The above tables show that two things are very important to maximizing the frequency of beacon monitoring updates:

Continue reading this blog post on the Radius Networks website



Need professional help building a beacon or IoT application? Contact David here.