3. • What iBeacon technology is and what is used for
• How we can use this technology to effectively track people’s movements in a
closed space like a room or a shop
• How we can push interesting content on their smartphone based on their
proximity to an object
• My Experiment
• Apps fully based on iBeacons
summar
y
4. What is an
iBeacon?from http://en.wikipedia.org/wiki/IBeacon
Enables a smartphone to perform actions when in close proximity to
an iBeacon.
iBeacon uses Bluetooth low energy proximity sensing to transmit
a universally unique identifier.
The identifier can be looked up to determine the device's physical
location or trigger an action.
6. Monitoring
Enables your app to know when the device enters
and exits the range of beacons defined by the
region
Ranging
Gives you the exact list of beacons detected in a
given region, together with an estimated distance
from the device to each beacon.
iBeacon Monitoring and
Ranging
8. Field Size Description
UUID 16 bytes
Application developers should define a UUID
specific to their app and deployment use
case.
Major 2 bytes
Further specifies a specific iBeacon and use
case. For example, this could define a sub-
region within a larger region defined by the
UUID.
Minor 2 bytes
Allows further subdivision of region or use
case, specified by the application developer.
UUID fb0b57a2-8228-44cd-913th-94a122ba1206 Minor 4563 Major 3457
iBeacon Advertisement
9. Indoor location:
Locate an object or people inside a building.
Way-finding:
Knowing where your desired location is, how to
get there from your present location.
Way Finding /
Indoor Location
from http://www.umich.edu/~wayfind/supplements/moreinfomain.htm
10. 1) Download the library
2) Let your activity implements BeaconConsumer
3) Create your iBeacon identifier and a Region
mAllBeaconsRegion = new Region(UNIQUE_ID,
Identifier.parse(PROXIMITY_UUID), null, null);
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
beaconManager.bind(this);
Alt Beacon Library
follow https://altbeacon.github.io/android-beacon-library/configure.html
11. Alt Beacon Library
4) Implement AltBeacon Methods
@Override
public void onBeaconServiceConnect() {
beaconManager.setMonitorNotifier(new MonitorNotifier() {
public void didEnterRegion(Region region) {}
public void didExitRegion(Region region) {}
public void didDetermineStateForRegion(int i, Region region) {}
5) Check if the device entered in a Beacon Region
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(final Collection<Beacon> beacons,
final Region region) {
}
follow https://altbeacon.github.io/android-beacon-library/configure.html
12. 6) When entered in Region Send Notification
public void didRangeBeaconsInRegion(final Collection<Beacon> beacons,
final Region region) {
sendNotificationWear(beacon);
}
7) Send Notification to Android Wear
// Create a WearableExtender to add functionality for
wearables
// Build intent for notification content
// Get an instance of the NotificationManager service
// Build the notification and issues it with notification manager.
Wear Notification
follow http://d.android.com/wear
14. CONS:
Closed Source
Work only with Estimote
Take time to fix distances
iBeacon Android
Libraries
PRO
Optimised for Estimote
Can program Estimote
Easy to use
CONS:
Cannot program iBeacons
General library
Less accurate distances
PRO
Works with all major iBeacons
Open Source
Good starting point
18. Indoor location
(the easy way)
• No library for indoor location in Android
• AltBeacon / Estimote SDK
• No statistical assumptions
• Empirical data (based on many iterations)
• Approximation
How we made indoor location
20. • Estimote (Win)
• Using iBeacons is very easy
• Indoor Location is not so easy
• iBeacon drains your Battery!
• iBeacon technology is not mature
Experiment
Results
21. Fingerprinting Triangulation Trilateration
• Other external components such as Wi-fi, Magnetic field…
• Signals theory (clean signal waves)
• Statistical Algorithms (Best fit, Monte Carlo Localisation)
Internal sensors (accelerometer compass)
Indoor location
(the correct - and hard - way)
22. Apps based on iBeacon
Why you don’t make
it for Android???