Radius Networks Developer Blog

Update On iOS Beacon Monitoring in the Background

Emma Hobday & Blake Middleton 10 Jun 2015 Permalink

One of the most fundamental uses of beacons is their ability to interface with an app and wake up a sleeping mobile device. If the mobile device doesn’t wake up, however, the beacons and the apps that utilize them are next to useless. This post is an update of our 2013 post on Beacon Monitoring in the Background and Foreground. For this update, we tested the time delay between entering or exiting a beacon region and when a local notification was displayed on the lock screen of various Apple iOS mobile devices.

We tested an iPhone 6, an iPhone 5, two iPhone 4S’s, and an iPod Touch 3rd generation, all of which were running on iOS 8.3, as well as an iPhone 4S that was running on iOS 8.1. All the devices had bluetooth turned on, as necessary to interface with beacons, and both wifi and cellular data turned off. Testing was done using the Radius Networks Locate Beacon app for iOS. All devices were tested in the locked state with the screen off, so that any notifications would appear on the lock screen. None of the devices were plugged in.

All mobile devices tested generated local notifications representing a beacon region enter event similarly within a range of 1 to 10 seconds. Notifications representing a beacon region exit event were slower, in the 35 second range, and happened less reliably.

Device Avg. Wakeup Time Range in Wakeup Times Avg. Exit Time Frequency of No Exit Notification (# none/ # trials)
4S 1 s 1-2 s 36 s 5/7
5 4 s 1-7 s 42 s 1/6
6 5 s 1-12 s 35 s 7/10
iPod 3 7 s 1-10 s (1:41 outlier) 42 s 5/10

Exit time is a measure of how long it took for the device to generate a local notification that a beacon region exit event occured after it has stopped receiving advertisements from a test beacon. In some instances no exit notification occurred, but those trials were not used in calculating the averages. The cutoff time for a trial counting as no notification was usually 2 minutes, though a few trials of a 5 minute were also used, yielding no additional results. Additional investigation is warranted to understand why our test setup failed, in some cases, to result in consistent region exit notifications.

Interestingly, notifications representing region enter events were faster on the iOS 8.1 iPhone 4S, while at the same time battery drain on this iPhoe 4S device appeared to be much higher. One explanation for this may be due to power optimizations in later versions of iOS or more optimized hardware in the later models.

Being plugged in improves the wakeup times of both the iPhone 6 and the iTouch 3 to average around one second, indicating the power management optimizations may play a role in the detection times for iOS devices.

Troubleshooting Notes

  • Sometimes if a device isn’t sending notifications in the lock screen, this can be solved by opening the app and waiting for information to update in the foreground, turning back on notifications.

  • Sometimes devices just won’t recognize when they’ve left the zone of an active beacon.

  • As discussed in a previous post Background Monitoring of Beacon Regions on iOS, beacon apps notify about entering beacon zones much more slowly on devices that already have a lot of beacon-using apps installed, in the realm of ten to twenty minutes instead of 3 seconds.