Apple iOS 7.1 Launches Major iBeacon Improvement

iBeacon Now Works When the App Is Closed

Apple launched iOS 7.1 today and with it a major, game-changing improvement to iBeacon.

As of today, once an app is installed it will “look” for beacons even if your app is shut down or you’ve rebooted your phone.

We tested the functionality today to verify the new feature.

After opening an iBeacon app we hard closed it: not just putting it into the background tray but swiping it closed entirely. The phone still detected beacons and sent a message through the lock screen, something which in the past was reserved for apps that were at minimum running in the background tray.

The functionality even works if you reboot your device: after you power down your phone and start it up again, it will continue listening for beacons even if you don’t open up the app again.

A Significant Change

The change is significant. When Apple launched iOS 7 and gave phones and tablets the ability to ‘hear’ Bluetooth LE powered beacons it opened up a new era in proximity-based experiences. Retailers could now send you a coupon when you’re near the cookie aisle or background information about a painting in an art gallery.

But there was a problem: along with a few other glitches in the iBeacon SDK (the software used to create the apps on your phone) there was no way to listen for Bluetooth LE beacons unless your app was, at a minimum, on in the background.

Ostensibly this was to ensure that users had an easy way to prevent spam messages or to opt-out of your iBeacon “experience”.

But with iOS 7.1 your application will listen for beacons even if it was hard closed. The user can still opt out by turning off “location permission” under settings, can turn Bluetooth off, or can delete your app entirely.

But the change is a major boon to iBeacon developers – and will mean you no longer need to find fancy ways to prompt your user to keep an app in background mode.

A Change in Responsiveness?

It’s probably too early to tell from a few quick tests, but we also noted what seemed like a major improvement in responsiveness to Bluetooth LE signals. Region changes, exits, and beacon detection seemed to happen at a significantly faster rate than in iOS 7.0

In the past, for example, we’d see a delay of 1-2 seconds up to a minute on exiting a region. In iOS 7.1 we see it happen nearly instantaneously.

We’re hoping other developers can chime in on this point – either anecdotally or otherwise, to let us know whether you’re seeing a near lightning response to beacon detection (or is that, perhaps, too much to ask? It might just be a low level of radio interference at our offices today).

In any case, we’re still doing a dance here at BEEKn to find that your app truly can see the world around it, and will find your beacons even if your app is off.

Give Us A Follow

Join our weekly e-mail list for more on iBeacons. Check out our BEEKn Google page, follow me on Twitter, or connect with me on LinkedIn.

And let us know what you think – But what do you think? Is a USB-powered beacon a niche device, or does it match most of the iBeacon use cases? Drop in your comments below.

78 thoughts on “Apple iOS 7.1 Launches Major iBeacon Improvement

    • great! “Apple accused of selling customers’ personal information”

      goo (dot) gl/fEkM0n

      never trust Apple if you need privacy

      Like

  1. One thing that’s kind of interesting – you don’t need to deploy your app to a 7.1 build, so long as the user has updated to 7.1 it’s “retroactive”.

    Therefore, anyone with an iBeacon app will immediately take advantage of the feature without needing to deploy a new version.

    Like

  2. Just did a quick test on ranging, and it seems much more stable. Working on “tap Beacon” code and it was flakey when far away from the beacon on iOS 7. 7.1 seems to make this much more predictable (and usable).

    Like

  3. Thanks Timothy – and great to see you as always! 🙂 You guys rock.

    And good…I wasn’t sure if it was just me. Seems slightly more responsive although still get a lag on exit, but seems slightly less than before.

    But what we noticed was the same thing: predictability.

    Feels like we have a win.

    Like

    • Same here – although I had some initial “hesitancy” with picking up one of my Estimote beacons, the entry detection is more responsive and the delay, although still present, seems less on exit.

      Looking forward to testing it out more. This is really a killer feature update!

      Happy I found this post. Thanks Doug.

      Like

  4. Doug,

    Over the weekend I tested my beacons in a “real world setting”. An abundance of mobiles, wireless devices using bluetooth, radios, routers, microwaves etc…I was satisfied with the results. A few hours ago, I updated my device to 7.1 and can definitely notice a faster response from the app used for the tests when in proximity of the beacons. I must mention that I’m currently at home, so tomorrow I’ll run comparative tests, out in the “real world”, with hopes that the improved responsiveness will be noticeable there as well. TBC…

    Like

  5. Hi, Doug,
    The tests we made with my colleagues showed it previously worked in background, even after a reboot. It did not work if a user decided to manually close the app with a swipe.
    This choice didn’t seem wrong to me as it’s a fast way to remove annoying notifications. But of course one can still remove location permission.
    Thanks for your articles.

    Like

    • We did a proof of concept with iOS 7.0 and we were able to detect beacons when application was not running. The only difference is the ranging time frame. Detecting beacons when the application is completely off was a task pain, it could require up to 15 minutes after entering the beacon region. We are going to do some tests with the new iOS version

      Like

      • Fredric – when you say “isn’t getting automatically detected” this can mean a few things. Most beacon code works on detecting ENTRY into a beacon region. Once you enter a region, you send a push message (as an example).

        But when you open the app when you’re already in the beacon region, your code might not be taking any action because it’s currently only programmed to act upon entry.

        One thing to try might be to “check beacon state” when you open the app (say in viewDidAppear). You want to make sure you call requestStateForRegion. Something like this:

        – (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
        [self.locationManager requestStateForRegion:region];

        }

        Now…having said all that, we’ve also been seeing issues with iOS 9 which are somewhat confounding….if you’re having issues with iOS9 I’d love to hear about it! (iPads in particular seem to be taking a beating).

        Like

      • We’ve been seeing some odd issues with Beacons as well. Nothing extreme just yet, but an uptick in support issues that has become noticeable. We are still trying to figure out what is going on, but does feel like something has changed at least in iOS 9.1 and 9.2.

        Like

  6. A very quick test with my series 1 gimbals (not ibeacon configured):
    Very, very, very noticeable improvement on ranging and responsiveness.

    I didn’t even test in background mode but I’m incredibly happy and surprised

    Like

  7. Alberto – great news…we’re seeing similar results after a day of testing. The responsiveness remains high even with the app closed and after a day of not opening it – we were wondering whether Apple might slowly reduce the amount of polling it does for apps that are closed off.

    James – not sure about the 20 UUID limit. I imagine it’s still in place but am not sure.

    We also haven’t seen any of the weird ‘toggling’ that Bluetooth used to do where you’d suddenly lose the Bluetooth signal for a very brief millisecond, forcing the app to think it’s exited and to restart polling thus causing an unexpected region entry even when you never left the region – has anyone else seen whether that bug has been cleaned up?

    Like

  8. […] Desde Beekn, donde han hecho algunas pruebas con emisores, también creen que el rendimiento para detectar las señales Bluetooth de esos iBeacons ha mejorado. En resumen, Apple está preparando todos los terminales iOS para que sean capaces de trabajar con esta nueva tecnología sin que ello signifique deteriorar nuestra experiencia de usuario o reducir la vida de las baterías. […]

    Like

  9. This is great news for those of us that are wanting to search for beacons while the app is off. So did you create a delegate for the open in the background like the docs from the Apple conference mentions?

    Like

  10. We have noticed improvements including reduced connection times, increased connection distance and improved responsiveness in our first tests using iOS 7.1 with the iBeacons inside our Robosmart LED Bulbs. An added benefit is that the designated bulbs connect and turn on automatically when our Smart Lights App is open. This eliminates an extra step previously required to locate and connect to nearby iBeacons. It’s a big plus for our customers.

    Like

  11. Thanks for the heads up Doug, Im keen to check this out. It seems iOS is better served than Android right now in terms of BLE functionality – I’m one of many patiently waiting for the ability to function as a beacon to make its way onto the platform.

    Like

    • Justin – Android devices probably do a better job than iOS because you have a lot more control, and by some accounts they’re even less harsh on battery consumption. The lag, as you know, is in SDKs and roll-out of Kit Kat to the full “Android family”.

      It was interesting to see Samsung upgrade to Kit Kat and to focus on wearables and health – that might be their “beacon play” more so than beacons in the world/retail/etc….although obviously Android also works with iBeacon. We just need to wait for the handset operating systems to catch up and to see more work around frameworks and SDKs.

      Like

  12. When you say, “The user can still opt out by turning off “location permission” under settings, can turn Bluetooth off, or can delete app entirely”, do you mean the user must turn off the Location Services function entirely or the individual app’s access under the Location Services?

    Like

  13. I was testing this today as well with Estimotes and the monitoring of exit and entry events does seem more stable and responsive and it is good to see that apps can now listen for entry and exit events even when the app is forced closed. However, it also seems that ranging events (immediate, near, far) still cannot be monitored in the background with the screen off except for a few seconds either side of an entry or exit event.

    Still, progress is good 🙂

    Like

    • I’m noticing the same thing about ranging. I get an initial burst of ranging events logged upon entering a region, then nothing after that. That said, region entering seems immediate and exiting seems to have a delay of about a minute? More than accurate enough for my use cases, your mileage may vary.

      It also seems that iBeacon advertising does not work in the background. Can anyone corroborate this, or perhaps knows of a way to keep the beacon going?

      Like

  14. Doug,

    My follow up comparative tests in a “real world setting” are completed .

    The improved responsiveness is noticeable with multiple test apps.

    Very cool 7.1, very cool.

    The best part? The best is yet to come!

    Like

  15. Sesil – The user can turn off location permissions on a per app or phone wide basis. I’m not sure how friendly it is to users, however. And I can’t help wondering whether Apple might not move “location services” into its own unique tab under settings.

    Right now, under Settings>General>Background Refresh you can turn off for your phone or toggle specific apps.

    You can also toggle universally or by specific app which ones send you notifications through your lock screen under Settings>Notification Center ….which is the main way you’ll reach people who come into beacon region (sending a message or notice through the lock screen).

    iPhones will detect ALL beacons, not just Apple certified iBeacons. At least for now, although I see now reason why (or even HOW) Apple would change that, otherwise they’ll have to manage a universal directory of UUID numbers.

    Like

  16. The success of iBeacon by retailers, marketers and other organizations that adopt it will be based on how it’s used. When a new enabling technology becomes available, marketers and businesses often deploy it without really thinking through the best potential use and approach to the customer. If a retailer deploys iBeacon to spam a customer as soon as they enter a store, it may hurt more than help.

    On the other hand, if a retailer uses iBeacon to offer genuine help, customers will more likely embrace its use. For example, every time I walk into a Home Depot, I am lost. There are so many aisles of merchandise without a clear notion of where the widget I’m searching for can be found. (I went to a Home Depot with my wife a few years back and we got separated in plumbing supplies – I hope she’s doing well, wherever she is. But I digress.)

    Imagine if I could be greeted by a Home Depot iBeacon upon entry with a simple question: “Welcome to Home Depot. Let us know what you’re looking for, and we’ll guide you there.” With a swift entry of the description of the item I’m looking for, the Home Depot system could respond with the exact location of the item (let’s say a Rain Bird automatic sprinkler head) mapped out in the store, and perhaps with walking directions to its location. It might bring up a product description and price. If necessary, you could summon a Home Depot staff member from your iPhone, all via iBeacon.

    That simple act could help me complete my shopping more quickly, assure a sale for Home Depot and assure that my shopping experience was outstanding. That’s the sort of marketing that would make me a dedicated Home Depot customer, all by integrating iBeacon technology correctly with the company’s IT infrastructure and merchandising.

    My hunch is that we won’t see this happen very soon. It would mean upgrading the IT back end with marketing and merchandising systems. But if storefront retailers want to compete with Amazon, this is exactly the sort of experience they will need to create for their customers. iBeacon can help make this possible – if retailers see the light and move quickly.

    Similar scenarios could be used for grocery shopping, museums, sports stadiums, hospitals, airports and more. Fingers crossed that this will happen. My hope is that a few years from now, Apple’s new creation will become mainstream and that we, the customer will be the better for it. What Apple has done with iBeacon is amazing. Let’s hope its end users (retailers) are equal to the task.

    Like

  17. Thanks for this great article.
    Can you tell us more about the test procedure that highlight the awaited behaviour from feature : “with iOS 7.1 your application will listen for beacons even if it was hard closed”.
    By “even if it was hard closed”, do you mean, when user swipe the app from the multitask bar?I do not notice any evolution in the API, or release notes, so , is there specific thing to do to enable this feature (app permission, specific coding, etc.).
    Best Regards 😉

    Like

  18. Hi Doug, even in Rome we confirm improvements using iOS 7.1 🙂

    One of our first presentation – months ago – has been very embarrassing.
    In the middle of the demo, answering on a couple of questions, our testing device become crazy but actually nor me (holding the phone) nor the beacons around were moving! The phone started sending notifications like in loop.
    I still see region exit is triggered when you are pretty far but, right now, I feel to say that this 7.1 is bringing improvements (we did a stress test using Estimote).

    Like

  19. Does anyone know if phones can now advertise as iBeacons in the background? I think that would be an even bigger game changer. As of right now phones can’t advertise as an iBeacon when the app is in the background. If they could, this would open up the possibilities greatly. You could have something similar to StreetPass (Nintendo 3DS) right on your phone. I imagine it is only a matter of time before Apple allows this. It seems like a no-brainer.

    Like

  20. Patrick – haven’t tested it ourselves but we’re told that no, it won’t work. Totally agree with you – game changer if you could, even in retail where an iPad sales terminal will only act as a beacon if the app is active, something you can’t always guarantee.

    I wonder whether they’re waiting on a wearables strategy before they make that move?

    Like

  21. The connection time improvement is not limited to iBeacons. I can see a vast improvement on other BLE devices, it connects almost instantly. I hope this does not drain the battery of the BLE Peripheral. Does anybody see on a protocol level what has changed? I did not recompile my app for ios7.1 but get this much better user experience out of the box with iOS update.

    Like

  22. What about apps that use Core Bluetooth instead of iBeacon? If you force close the app, will it still discover advertisements in the background or does this new behavior in iOS 7.1 apply to iBeacon and geofencing only?

    Like

    • I’ve been wondering this too – anyone know if core bluetooth with continue to run in the background after a force close?

      Like

      • Have you been able to get a definitive answer on Core Bluetooth? In my initial tests it looks like my app is not scanning after a restart or swipe up close. Wondering if I’m implementing incorrectly, or if indeed this does not apply to Core Bluetooth.

        Like

    • Have you been able to get a definitive answer on Core Bluetooth? In my initial tests it looks like my app is not scanning after a restart or swipe up close. Wondering if I’m implementing incorrectly, or if indeed this does not apply to Core Bluetooth.

      Like

  23. This is very cool. Thanks.

    I’ve also just watched attended this iBeacon 101 webinar and it appears there are some traps to watch out for. But overall looks really easy to implement and no doubt will revolutionise the customer experience.

    Like

  24. […] iBeacon support is improved, too. An app no longer has to be running (or opened in the background) to receive Beacon notifications; messages will still be received in the lock screen even if you recently restarted your phone and didn’t bother to open up the app. Apple has added CarPlay support, which lets you control your iPhone on a built-in display — assuming your car is equipped with it. […]

    Like

  25. This is really awesome news. My clients will be so happy that I can’t even tell you. Now iPhone will definitely do the things for which I was waiting for a quite long time.

    I am very much happy and thank you Apple for wonderful surprise gift. 🙂 I love it….

    Like

  26. I think this is bad idea. Any app the needs to run in background should be granted that right on the “Background App Refresh” menu. Allowing individual Apps to do so opens security and power consumption issues the average user many not be aware of, especially when they might rightfully assume such privileges are granted on the background app refresh menu. There is no reason to hide this, we need to be forthright with our users!

    Like

  27. Hey! I am a newbie to the whole beacon scene and your site has been amazing to help me understand and get introduced to the world of beacons.

    About being able to send notifications without the app running in the background, is it necessary to have at least one app(looking for different UUID’s) that requires a BLE scan running in the background for the force closed app to benefit?

    I’m using the Locate for iBeacon app configured to recognise my Mac, and another app which is looking for a different random UUID. When I force close only Locate and run the other app(even if it’s in the background) and turn on my Mac transmitter, I am getting notifications from Locate. But when I force close both of them, this doesn’t work anymore. Is there something I’m missing here?

    Thanks in advance!

    Like

    • Seems like I was wrong! I installed the MyBeacon app and checked and it’s working even without any BLE apps in the background.

      Like

  28. Hi,
    My testing on ios 7.1 when app is in background mode shows there is still a long delay for notification to come. Am I the only one experiencing this issue?
    regards
    Hammer

    Like

  29. Greetings,

    Related to the beacon changes that iOS7.1 brought, has anyone else noticed that CoreBluetooth scanning is no longer available when the phone is in locked mode but iBeacons is? We were running experience with BLE beacons that were not iBeacons when iOS7.1 was pushed and it killed the phone’s ability to wake up when locked.

    Like

  30. My app not detecting beacons after restart iPhone . For detection i have to open app once or change the bluetooth status (off bluetooth and then on bluetooth). But its not automatically start detection after restart .

    Like

  31. iOS uses beacons in two different ways: region monitoring and beacon ranging. The latter does NOT work in the background (read below for exceptions), or when the app is terminated.

    Region monitoring (up to 20 regions) will occur in the background, and even when the app has been terminated. This can be confirmed with the “hollow navigation arrow” in the status bar. CLLocationManager will ONLY fire off ONE delegate call when a region is entered. If you start monitoring for a region while INSIDE of that said region, the entry delegate will NOT be called. Your app will have to manually call the CLLocationManager’s requestStateForRegion method. Once you’ve exited the monitored region(s), CLLocationManager will call the didExitRegion approximately 30-45 seconds later. This is in place to prevent inadvertent border crossings.

    Region monitoring can call a local notification, prompting the user to interact with the app, and allowing the app to “wake up” in order to run in a background process for around 10 seconds. There are ways of extending it up to 180 seconds, but it’s not guaranteed by iOS.

    Beacon monitoring can occur during this 10/180 second background process, or when the app is in the foreground. Beacon monitoring WILL NOT RANGE BEACONS while the app is in the background, or when terminated. There are no hacks to keep the ranging process running. Once the screen of the device is turned off, the app is put into the background, or terminated beacon ranging is HALTED. Region monitoring will continue, but only for the entering/exiting of a region.

    Once beacon monitoring has started, the CLLocationManager will receive delegate calls every second, or so. The beacons will be returned in an array from closest to furthest. DO NOT rely on the accuracy of the beacon return. Beacon range & proximity can be affected by NUMEROUS things: rain, solid objects obscuring their signal, battery life, and beacon placement. Storing these beacons, and looping through a sample set of them to determine proximity is preferred. Not all instances require this level of granularity, but keep it noted.

    Beacons are great, in certain cases. GPS is great, in certain cases. Do your homework before you start coding.

    Like

  32. Now this is pretty useful for the iOS users, just like me. I know that Apple is the best but I am facing some issues with my iOS 8 when it comes to connecting with iBeacon with respective apps. Please let me know what do with iOS 8 to connect the iBeacon and the app perfectly.

    Like

  33. Is it still working? I am monitoring beacons in foreground and also background, but when i eliminate my app from task bar, monitoring does not work.

    Have anybody experienced my situation and can help me?

    Thanks.

    Like

  34. My app not detecting beacons after restart iPhone . For detection i have to open app once or change the bluetooth status (off bluetooth and then on bluetooth). But its not automatically start detection after restart .
    Planning for a new model of iphone soon 😉

    Like

  35. This is extraordinary news for those of us that are needing to look for signals while the application is off. So did you make a delegate for the open out of sight like the docs from the Apple meeting notices?

    Like

  36. […] UPDATE: Multiple sources have reported that, as of iOS 7.1, applications scanning for beacons will now remain registered for ranging events even when the application has been terminated.  This removes the need for developers to try and maintain background refresh modes in order to discover new iBeacons. […]

    Like

  37. Now this is pretty useful for the iOS users, just like me. I know that Apple is the best but I am facing some issues with my iOS 8 when it comes to connecting with iBeacon with respective apps.

    Like

Leave a comment