There’s an useful new free iOS app BlueTemp that shows displays Bluetooth sensor data.

It works with BlueUp, Minew S1 and Forecum 201 beacons showing temperature, humidity and pressure, depending on what the respective beacon supports.
iBeacon, Eddystone, Bluetooth, IoT sensor beacons, apps, platforms
In our previous post on Apple WWDC on the ‘Find my’ feature we explained how the use of others’ phones for finding your devices is much like Tile (and other tracking beacons). However, there’s evidence that Apple might also be creating their own, separate, Tile-like device. 9to5Mac also have some further speculations.
It’s also interesting that Apple are changing the API for looking for beacons. CLBeaconRegion has become CLBeaconIdentityConstraint. The functionality currently remains the same in that you can filter by UUID/major/minor. However, the renaming of the API to make it more generic suggests it might eventually also be used for something else which might be the Apple tag.
While devices such as the Tile are great, when finding items remotely, they assume lots of people have them for someone else’s Tile app to see your tile. While the Tile network is large at 15 million trackers it will never be large enough to reliably find things. Apple has a much greater reach to make such a scheme more successful. Tracking things such as your lost car or dog become far more feasible.
An observation is that Google Android has a substantially greater reach offering Google the opportunity to offer something similar, more reliable (due to sheer number of devices) but more open as they did with Bluetooth Eddystone vs iBeacon. Taking this idea further, it’s a shame there isn’t an open Bluetooth tracking system or standard, for example, championed by the Bluetooth SIG.
September 2019 Update: It’s looks like Apple will be using UWB rather than Bluetooth making the solution more accurate and more proprietary. If true, it will eventually compete with Bluetooth Direction Finding.
May 2020 Update: The device will be called AirTag.
While some people were hoping for an ‘iBeacon version 2’ and there were rumours of a new Apple ultra wideband locating system, neither were announced at WWDC 2019. Instead, the Bluetooth news centred around the ability to use Bluetooth to find Apple devices, even when they aren’t online and even when they aren’t nearby.
Some news outlets have described this as a Bluetooth mesh network made up of all other iOS/Mac devices which is misleading and will lead to unfortunate confusion with the official Bluetooth SIG mesh. Instead, as Apple described, the system is much like the tracker ’tile’ type beacons that have apps that report in all seen beacons to a central server. If someone else’s device sees your device then you can find your device.
The difference to tile-like beacons is that the servers belong to Apple, the Bluetooth advertising is proprietary (and hence anonymous to eavesdroppers) and devices are acting as beacons. It’s interesting how, or if, Apple has done this without impacting both your iPhone battery life and the battery life of all iPhones scanning for beacons. The Bluetooth advertising must be very infrequent.
Privacy conscious people might also observe that this also gives a new way for Apple to know the location of Apple devices and proximity between devices. We wonder whether this will be ‘on’ by default for all users, opt in or opt out? Privacy matters aside, always knowing the proximity between Apple devices allows Apple to provide for some interesting possible future usecases.
UPDATE: There’s a new article in Wired explaining how the mechanism is end to end encrypted. This means Apple doesn’t know where your device is and, by implication, won’t be able to implement the possible ‘future usecases’ I alluded to.
Here are the top questions we get asked as a Bluetooth LE developer:
Read about our Bluetooth LE Software Development Services
There’s a 3rd party SensingKit for iOS and Android that came out of the research, SensingKit: Evaluating the Sensor Power Consumption in iOS devices (pdf), by Kleomenis Katevas, Hamed Haddadi, Laurissa Tokarchuk of Queen Mary University of London.
While the SensingKit supports beacons, it only supports them for detecting proximity. The various sensor beacon variants are not supported. SensingKit is best used when you want the smartphone, not the beacon, to do the sensing. It’s useful when you want to mix smartphone sensing with beacon proximity sensing.
In most cases it’s best to use the native Android and iOS SDKs.
Read about our Bluetooth LE Development Services.
There’s a new Bluetooth LE Wiki maintained by our founder, Simon Judge:
The Wiki includes information about Bluetooth LE idioms such as advertising, MAC address, Bluetooth name, GATT, transmit power, measured power, range, RSSI, mesh and the new direction finding feature. It also has links to hardware and programming information.
Important: This web page is provided for historical purposes.
On 25 October 2018, Google announced they are discontinuing Nearby Notifications on Android. This mechanism should no longer be used.
Read about using Beacons for Marketing
Google has removed the Android Physical Web app from the Play Store. This provided a way of scanning for Eddystone beacons without relying on the built-in Android Nearby functionality. As previously mentioned, the Google Physical web team was disbanded. Google have now removed the app, presumably because there’s no-one to maintain it in tandem with new versions of Android. Here’s the final Android Physical Web APK if you wish to side-load the file.
The iOS Physical Web app is also no longer available. The iOS version wasn’t written by Google and has recently been taken over by the non-profit Physical Web Association.
People often come to us with the wrong impression how iBeacon apps can work. They think an app can sit in the background and suddenly come to the foreground when an iBeacon is detected. If you think about it, no 3rd party apps work like this, taking over your screen, and for good reason. It’s seen as intrusive by users and both iOS and Android prevent this. Instead, apps need to show a notification which, if tapped on, goes to the app or a screen within the app.
On iOS, apps don’t actually do the detecting of beacons. iOS detects beacons with ids that have been pre-declared by the app. When an app isn’t running, iOS starts the app for only a short time to allow it to show a notification.
On Android, prior to Android 8, you could have a background service scanning for beacons. However, Android has become more like iOS. Newer Android ‘Doze’ and background restrictions mean you have to use newer Bluetooth APIs to detect beacons when the app isn’t running.
When creating apps to discover beacons, there’s often the temptation to use cross platform tools to create both iOS and Android apps at the same time. Such tools are often based on web (WebView screen) technologies and Javascript.
The first problem you will encounter is that few of the cross platform tools support Bluetooth. Even if they do, they don’t support it to the degree required to implicitly use the latest iOS and Android Bluetooth APIs. This is one of the main problems with cross platform in that functionality always trails the underlying native OS functionality.
Another problem is that there’s no one Android browser upon which the WebViews are based. Niels Leenheer has a (old but still relevant) set of slides that explains how browsers vary across Android versions, devices and phone manufacturers. The consequence of this is that getting any non-trivial WebView-based app to work across many device types is very difficult.
The next problem is functionality. It not only lags the underlying OS functionality in the use of APIs but also features are absent. This often requires some native coding which causes the app to become more of a Frankenstein creation with consequent unexpected complexities.
For best performance and OS look and feel you have to use native development. It’s possible for hybrid apps to look and feel like Android and iOS but it takes a lot of effort due to the previously mentioned browser fragmentation. It’s possible to get near-native app performance by replacing (bundling) a better Javascript interpretor. However, these extra complexities are what you were trying to avoid by using the cross platform framework in the first place.
If the above doesn’t persuade you, even Mark Zuckerberg regretted using web technologies in apps in 2015. This didn’t stop others trying. There are some detailed posts on Medium explaining how AirBnB is moving back to native development and how the difficulties are not just technical but also organisational.
If you are writing apps or getting apps written we recommend you save yourself some grief and write them using native code.
Last February we wrote about the progress of Bluetooth 5 in recent smartphones. A few months on and Nordic Semiconductor, the company that produces the System on a Chip (SoC) used in most beacons, has a new blog post on Bluetooth 5 in Smartphones and how we are about to experience a tipping point in support for Bluetooth 5.
The final observation from the article is:
Even if sticking to previous incarnations of Bluetooth may look like the right choice, the marketing power of Bluetooth 5, regardless of whether it’s needed or not, is likely to help companies differentiate products and increase sales.
This is true. Some companies currently claiming Bluetooth 5 support in products don’t actually use Bluetooth 5 yet but instead offer an upgrade path to Bluetooth 5.