IBeacon Identity Profile
First of all, an iBeacon has a few identifying characteristics so that apps can distinguish the iBeacons they’re interested in from a crowd. iBeacons simply identify themselves via a combination of 3 values: UUID (unique identifier), Major and Minor.
proximityUUIDproperty contains the identifier that you use to identify your company’s beacons.
majorproperty contains a value that can be used to group related sets of beacons. For example, a department store might assign the same major value for all of the beacons on the same floor.
minorproperty specifies the individual beacon within a group. For example, for a group of beacons on the same floor of a department store, this value might be assigned to a beacon in a particular section.
Does it work on Android?
IBeacon capabilities have been added to iOS since iOS 7.0 but Bluetooth LE is supported on Android only from 4.3+ with no native library to detect and manage iBeacons. Because we LOVE challenges here, we’ve decided to tackle this problem and we’ve managed to port the iOS7 iBeacon SDKs to Android in our new Android SDK (v2.0) released in January this year. Only a few in the industry successfully support iBeacon on Android.
Since we released the our Android iBeacon Library a few months ago, allowing Android devices to detect iBeacon just like iOS, we’ve received quite a few questions and here are our answers:
- Does the SDK support any iBeacon, or only Estimote/Kontakt/…?
Yes, our SDK supports all iBeacons as long as the suppliers respect the iBeacon identity profile in the advertisement packet.
- Can Android devices act as an iBeacon?
Unfortunately, Android 4.3 devices with BluetoothLE can see iBeacons but not act as iBeacons, because Android 4.3 does not support peripheral mode.
- How distance works with iBeacon and what accuracy can we expect?
See below a more detailed answer.
How Distance Works with iBeacon
iOS does a lot of work behind the scenes approximating the distance to each iBeacon. Because broadcast interference can result in wide fluctuations in signal strength (walls, windows, furniture…), iOS smooths the data to produce a more stable estimate of distance. The estimates of distance are broken down into four predefined distance zones: unknown, far, near, and immediate (See Figure below). When a beacon cannot be detected, it falls into the unknown zone.
However, the accuracy of indoor positioning system is greatly dependant on the parameters selected for estimation and the measurements obtained from the environment. The measurements are corrupted by various environmental conditions such as temperature, reflection, presence of obstacles, human body, multi-path fading, antenna polarisation…
Here is the kind of accuracy confidence we could measure in a standard office space:
Immediate Zone (0 – 0.5 m)
- Accuracy confidence is very high
Near Zone (50 cm – 2 m)
- Accuracy is fairly certain
Far Zone (2 – 30+ m)
- Accuracy is low and not quite reliable
You know us now, we’ve decided to look at how we can improve distance detection within the first 5 meters where most of our customers would like to get better accuracy confidence.
We are developing our own tools and algorithms using polynomial curve fitting, fingerprinting, extensive calibration techniques etc etc and we’ll be releasing our findings and useful tools quite soon.
In the meantime, our platform already gives the option to choose a more granular zone range when creating a microfence!
A last note
With the release of IOS 7.1, iBeacon now works when the app is closed (I mean “hard closed”, not just when foregrounded or backgrounded). More details in this article !
If you have any questions about this article or want to learn more about our products, just contact us !