Content deleted Content added
No edit summary |
Citation bot (talk | contribs) Added date. | Use this bot. Report bugs. | Suggested by Abductive | Category:Geopositioning | #UCB_Category 16/47 |
||
(23 intermediate revisions by 17 users not shown) | |||
Line 1:
{{Short description|Indoor positioning system}}
{{Lowercase title}}
{{Use American English|date=March 2023}}
{{Use mdy dates|date=March 2023}}
[[File:Beacons by jnxyz.education (13570846665).jpg|thumb|Smartphone detecting an iBeacon transmitter]]
'''iBeacon''' is a protocol developed by [[Apple Inc.|Apple]] and introduced at the [[Apple Worldwide Developers Conference]] in 2013.<ref>{{cite web | title= iOS: Understanding iBeacon |date=February 2015 | publisher=Apple Inc | url =https://support.apple.com/en-gb/HT202880 }}</ref>
Various vendors have since made iBeacon-compatible hardware transmitters – typically called [[Bluetooth low energy beacon|beacons]] – a class of [[Bluetooth Low Energy]] (BLE) devices that broadcast their identifier to nearby [[Mobile computing|portable electronic]] devices. The technology enables [[smartphone]]s, [[computer tablet|tablet]]s and other devices to perform actions when in proximity to an iBeacon.<ref>{{cite web|title=Bfonics Inc.|url=http://bfonics.com/what_is_beacon.php|publisher=Bfonics.com|access-date=
iBeacon is based on [[Bluetooth Low Energy#Proximity sensing|Bluetooth low energy proximity sensing]] by transmitting a [[universally unique identifier]]<ref>{{cite web |url=http://daveaddey.com/?p=1252 |title=iBeacons |publisher=Dave Addey |date=
iBeacon can also be used with an application as an [[indoor positioning system]],<ref>{{cite web|url=http://meetingofideas.files.wordpress.com/2013/12/ibeacons-bible-1-0.pdf |title=iBeacon Bible |publisher=Andy Cavallini |access-date=January 1, 2014
Another application is distributing messages at a specific [[Point of Interest]], for example a store, a bus stop, a room or a more specific location like a piece of furniture or a vending machine. This is similar to previously used geopush technology based on [[GPS]], but with a much reduced impact on battery life and better precision.
Line 14 ⟶ 15:
iBeacon differs from some other location-based technologies as the broadcasting device (beacon) is only a 1-way transmitter to the receiving smartphone or receiving device, and necessitates a specific app installed on the device to interact with the beacons. This ensures that only the installed app (not the iBeacon transmitter) can track users as they walk around the transmitters.
iBeacon compatible transmitters come in a variety of form factors, including small coin cell devices, USB sticks, and generic Bluetooth 4.0 capable USB [[dongles]].<ref>{{cite web|url=https://learn.adafruit.com/pibeacon-ibeacon-with-a-raspberry-pi/overview |title=Overview
[[File:An assortment of iBeacon from different vendors.jpg|thumb|An assortment of iBeacons from different vendors]]
==Functions==
An iBeacon deployment consists of one or more iBeacon devices that transmit their own unique identification number to the local area. Software on a receiving device may then look up the iBeacon and perform various functions, such as notifying the user. Receiving devices can also connect to the iBeacons to retrieve values from iBeacon's GATT ([[List of Bluetooth profiles|generic attribute profile]]) service. iBeacons do not push notifications to receiving devices (other than their own identity). However, mobile software can use signals received from iBeacons to trigger their own push notifications.<ref>{{cite web | url=http://myorpheo.com/push-notifications-visitors/ | title=Push Notifications for Visitors | date=November 4, 2014
===Region monitoring===
Line 24 ⟶ 25:
===Ranging===
As opposed to monitoring, which enables users to detect movement in-and-out of range of the beacons, ranging provides a list of beacons detected in a given region, along with the estimated distance from the user's device to each beacon.<ref>{{cite web|url=https://community.estimote.com/hc/en-us/articles/203356607-What-are-region-Monitoring-and-Ranging-|title=What are region Monitoring and Ranging?|publisher=estimote.com|access-date=
An iOS device receiving an iBeacon transmission can approximate the distance from the iBeacon. The distance (between transmitting iBeacon and receiving device) is categorized into 3 distinct ranges:<ref>{{cite web|url=https://www.youtube.com/watch?v=j87D-6JA0g8&list=UUPDVZSYjQUryXa_hehQaV5g&index=10|title=What is a Beacons Range Video Tutorial|work=YouTube|
* Immediate: Within a few centimeters
* Near: Within a couple of meters
* Far: Greater than 10 meters away
An iBeacon broadcast has the ability to approximate when a user has entered, exited, or lingered in region. Depending on a customer's proximity to a beacon, they are able to receive different levels of interaction at each of these three ranges.<ref>{{cite web|url=https://stackoverflow.com/questions/19007306/what-are-the-nominal-distances-for-ibeacon-far-near-and-immediate |title=What are the nominal distances for iBeacon "Far", "Near", and "Immediate" |publisher=Stackoverflow.com|access-date=
The maximum range of an iBeacon transmission will depend on the location and placement, obstructions in the environment and where the device is being stored (e.g. in a leather handbag or with a thick case). Standard beacons have an approximate range of 70 meters. Long range beacons can reach up to 450 meters.
Line 39 ⟶ 40:
==Power consumption==
[[File:New Battery Life of iBeacons.png|thumb|300px|right|upright|Comparison of 16 major beacon hardware of battery life in months (higher is better) by Aislelabs' The Hitchhikers Guide to iBeacon Hardware<ref>{{cite web|url=http://www.aislelabs.com/reports/beacon-guide/ |title=The Hitchhikers Guide to iBeacon Hardware: A Comprehensive Report by Aislelabs |publisher= Aislelabs|date=November 3, 2014
The Bluetooth LE protocol is significantly more power efficient than Bluetooth Classic. Several chipsets makers, including [[Texas Instruments]]<ref>{{cite web | url=
Battery consumption of the phones is a factor that must be taken into account when deploying beacon-enabled apps. A recent report has shown that
older phones tend to draw more battery in the vicinity of iBeacons, while the newer phones can be more efficient in the same environment.<ref>{{cite web |url=https://gigaom.com/2014/07/09/retailers-are-excited-about-beacons-but-how-fast-will-they-drain-your-smartphone-battery/ |title=Retailers are excited about beacons, but how fast will they drain your smartphone battery? |publisher=
In a follow-up report, Aislelabs found a drastic improvement in battery consumption for
At 10 surrounding iBeacons, iPhone
<ref>{{cite web|url=http://www.aislelabs.com/reports/ibeacon-battery-drain-iphones/ |title=iBeacon Battery Drain on Apple vs Android: A Technical Report - Aislelabs |publisher= Aislelabs|date=August 14, 2014
An energy efficient iBeacon application needs to consider these aspects in order to strike a good balance between app responsiveness and battery consumption.
==History and developments==
In mid-2013 [[Apple Inc.|Apple]] introduced iBeacons and experts wrote about how it is designed to help the retail industry by simplifying payments and enabling on-site offers. On December 6, 2013, Apple activated iBeacons across its 254 US retail stores.<ref>{{cite web|url=
As of May 2014, different hardware iBeacons can be purchased for as little as $5 per device to more than $30 per device.<ref>{{cite web|url=http://vincenth.net/blog/archive/2014/04/24/building-cross-platform-ibeacon-apps-for-ios-android-and-windows-with-c-and-xamarin.aspx |title=Building Cross-Platform iBeacon Apps for iOS, Android and Windows with C# and Xamarin |access-date=2014-05-14}}</ref>▼
Each of these different iBeacons have varying default settings for their default transmit power and iBeacon advertisement frequency. Some hardware iBeacons advertise at as low as 1 Hz while others can be as fast as 10 Hz.▼
▲As of May 2014, different hardware iBeacons can be purchased for as little as $5 per device to more than $30 per device.<ref>{{cite web|url=http://vincenth.net/blog/archive/2014/04/24/building-cross-platform-ibeacon-apps-for-ios-android-and-windows-with-c-and-xamarin.aspx |title=Building Cross-Platform iBeacon Apps for iOS, Android and Windows with C# and Xamarin |
iBeacon technology is still in its infancy. One well-reported software quirk exists on 4.2 and 4.3 Android systems whereby the system's bluetooth stack crashes when presented with many iBeacons.<ref>{{cite web|url=http://developer.radiusnetworks.com/2014/04/02/a-solution-for-android-bluetooth-crashes.html |title=A Solution for Android Bluetooth Crashes |publisher=Developer.radiusnetworks.com|access-date=2014-05-14}}</ref> This was reportedly fixed in Android 4.4.4.<ref>{{cite web|url=https://code.google.com/p/android/issues/detail?id=67272 |title=Android Issue Tracker|publisher=code.google.com|access-date=2015-03-25}}</ref>▼
▲Each of these different iBeacons have varying default settings for their default transmit power and iBeacon advertisement frequency. Some hardware iBeacons advertise at frequencies as low as 1 Hz while others can be as
▲iBeacon technology is still in its infancy. One well-reported software quirk exists on 4.2 and 4.3 Android systems whereby the system's bluetooth stack crashes when presented with many iBeacons.<ref>{{cite web|url=http://developer.radiusnetworks.com/2014/04/02/a-solution-for-android-bluetooth-crashes.html |title=A Solution for Android Bluetooth Crashes |publisher=Developer.radiusnetworks.com|access-date=
==Technical details==
[[Bluetooth low energy]] devices can operate in an advertisement mode to notify nearby devices of their presence.<ref>{{cite web|url=http://www.warski.org/blog/2014/01/how-ibeacons-work/ |title=How do iBeacons work?
In the simplest form, an iBeacon is a Bluetooth low energy device emitting advertisements following a strict format, that being an Apple-defined iBeacon prefix, followed by a variable UUID, and a major, minor pair.<ref>{{cite web | url=http://www.ibeacon.com/what-is-ibeacon-a-guide-to-beacons/ | title=What is iBeacon? A guide to iBeacon | publisher=ibeacon.com | access-date=April 20, 2014 | archive-
fb0b57a2-8228-44cd-913a-94a122ba1206 Major 1 Minor 2
where '''fb0b57a2-8228-44cd-913a-94a122ba1206''' is the UUID.
Since iBeacon advertising is just an application of the general Bluetooth Low Energy advertisement, the above iBeacon can be emitted by issuing the following commands on Linux to a supported Bluetooth 4 Low Energy device on a modern kernel:<ref>{{cite web|url=https://stackoverflow.com/questions/21124993/is-there-a-way-to-increase-ble-advertisement-frequency-in-bluez |title=Is there a way to increase BLE advertisement frequency in BlueZ? |publisher=Stackoverflow.com|access-date=
(Set LE Advertising Parameters)
Line 80 ⟶ 79:
hcitool -i hci0 cmd 0x08 0x000a 01
(LE Advertisement Disable)
hcitool -i hci0 cmd 0x08 0x000a 00
Devices running the [[Android operating system]] prior to version 4.3 can only receive iBeacon advertisements but cannot emit iBeacon advertisements. Android 5.0 ("Lollipop") added the support for both central and peripheral modes.<ref>{{cite web |url=http://www.mobilepaymentstoday.com/article/221089/SDK-will-let-Android-users-join-the-iBeacon-party |title=SDK will let Android users join the iBeacon party |publisher=MobilePaymentsToday.com |date=
==BLE
Byte 0-2: Standard BLE Flags (Not necessary but standard)
Line 103 ⟶ 102:
Byte 25-26: Major (User-Defined value)
Byte 27-28: Minor (User-Defined value)
Byte 29:
==Android iBeacon Support==
{{Update|section|date=November 2022|reason=quoted android versions were released nearly a decade ago}}
Unlike iOS, Android does not have native iBeacon support. Due to this, to use iBeacon on Android, a developer either has to use an existing library or create code that parses BLE packets to find iBeacon advertisements.
BLE support was introduced in [[Android Jelly Bean]] with major bug fixes in [[Android KitKat]]. Stability
==Spoofing==
Line 113:
This leaves the door open for interested parties to capture, copy and reproduce the iBeacon advertisement frames at different physical locations.
This can be done simply by issuing the right sequence of commands to compatible Bluetooth 4.0 USB dongles.
Successful spoofing of Apple store iBeacons was reported in February 2014.<ref>{{cite web|url=https://stackoverflow.com/questions/21955246/how-to-prevent-spoofing-of-ibeacons |title=android - How to prevent spoofing of iBeacons? - Stack Overflow |publisher=Stackoverflow.com|access-date=
This is not a security flaw in the iBeacon per se, but application developers must keep this in mind when designing their applications with iBeacons.
[[PayPal]] has taken a more robust approach, where the iBeacon is purely the start of a complex security negotiation ([[Challenge–response authentication]]). This is not likely to be hacked, nor is it likely that it would be disrupted by copies of beacons.<ref>{{cite web |url=http://global.verifone.com/media/3603729/bluetooth-low-energy-beacons-retail-wp.pdf |title=Bluetooth Low Energy, Beacons and Retail - VeriFone Systems, Inc. |publisher=Global.verifone.com |archive-url=https://web.archive.org/web/20141110151806/http://global.verifone.com/media/3603729/bluetooth-low-energy-beacons-retail-wp.pdf |archive-date=
Listening for iBeacon can be achieved using the following commands with a modern Linux distribution:
hcitool -i hci0
D6:EE:D4:16:ED:FC (unknown)
F6:BE:90:32:3C:5E (unknown)
Line 129:
FC D4 16 B6 B4
...
See Bluetooth Core Spec. Volume 4, Part E, 7.7.65.2: LE Meta Event::LE Advertising Report Sub-Event, for details on the hcidump output.
The [[MAC address]] of the iBeacon along with its iBeacon payload is clearly identifiable. The sequence of commands in [[#Technical details|technical details]] can then be used to reproduce the iBeacon frame.
==Compatible devices==
* iOS devices with Bluetooth 4.0+ ([[iPhone
* Macintosh computers with [[OS X Mavericks]] (10.9) or later and Bluetooth 4.0{{citation needed|date=July 2014}}
* Android Devices with Bluetooth 4.0+ and Android OS 4.3+ (e.g. Samsung Galaxy S7/J1 mini Prime, Samsung Galaxy Note 2/3, [[HTC One series|HTC One]], Google/LG Nexus 7 2013 /Nexus 4/Nexus 5, OnePlus One, LG G3)<ref>{{cite web|url=https://developer.android.com/guide/topics/connectivity/bluetooth-le|title=Bluetooth low energy overview|publisher=Google Inc.|access-date=November 9, 2019
* [[Windows Phone]] devices with Bluetooth 4.0+ and the Lumia Cyan update or above (reports suggest support is not included with Windows Phone 8.1).{{citation needed|date=September 2014}}
Line 147 ⟶ 148:
==See also==
* [[AirTag]]
* [[Eddystone (Google)|Eddystone]]
* [[Electric beacon]]
|