Trifork iBeacon Demo Lunch Talk
-
Upload
christian-melchior -
Category
Technology
-
view
107 -
download
2
description
Transcript of Trifork iBeacon Demo Lunch Talk
Trifork iBeacon DemoMobile Lunch 05.05.2014
Bluetooth Low Energy (BLE)
iBeacons• iBeacon is a BLE profile
specification formalised by Apple. It is not a standard.
• It can work on all devices that support Bluetooth LE, not just iOS.
• 2 primary use cases: Proximity and Ranging.
• Works indoors.
What is iBeacons
Bluetooth LE Support• Requires a Bluetooth LE chip. Only newer phones/
tablets has it.
• Windows: Phone 8.1 (?%), Lumia 520, 620, 625, 720
• iOS: 7.0+ (87%), iPhone 4s+, iPad 3rd generation+
• Android: 4.3 (14%), Samsung Galaxy S3+, Nexus 4+
iBeacon protocol• Advertisement bluetooth
package.
• Mac-address is spoofed on iOS.
• Proximity UUID: 16 byte UUID
• Major: 0 - 65.535
• Minor: 0 - 65.535
• TxPower: Signal Strength at 1m from iBeacon.
Detecting a iBeacon
• Can make drive-by-detection hard. Battery matters on both ends.
• Devices do not talk to each other. Phone simply listens to heartbeats from iBeacon.
• Scan time and intervals should be non-regular numbers, eg. scan period of 1.1s. instead of 1s.
Detecting proximity
• Just check for existence of the right combination of <Proximity UUID, Major, Minor>
• No guarantee that iBeacon is unique.
Detecting range• Hard problem. Many scientific papers
on the subject.
• Water blocks bluetooth signals. Guess what humans are mostly made of?
• Algorithm not known on iOS.
• Thus only rough estimates -> Immediate, Near, Far.
• Recommendation is to use relative range instead of absolute.
• “You know if you are close to an iBeacon, otherwise you don’t know anything”.
Code/SDK’s• Android doesn’t not provide a common API. Each
app must implement it.
• Androids Geofencing API doesn’t support iBeacons (yet).
• SDK’s exist that make it easy: Estimote, Radius Network, Gimbal (soon?).
• Demo app: https://github.com/cmelchior/trifork-ibeacon-demo
Keynote now has animated GIF Support :)
Lessons learned• Android Bluetooth stack is flawed. Crashes when it has
seen 2000 MAC’s: https://code.google.com/p/android/issues/detail?id=67272
• When monitoring, battery impact is small. It is still noticeable over a day however. Scan intervals matters!!!
• Ranging is very unprecise.
• Exit/Entry into a region can happen very frequently due to scans missing the iBeacon.
Links• http://en.wikipedia.org/wiki/IBeacon
• http://www.warski.org/blog/2014/01/how-ibeacons-work/
• http://stackoverflow.com/questions/18906988/what-is-the-ibeacon-bluetooth-profile
• http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing
• http://localz.co/blog/ibeacon-ble-hardware-commercial-comparison/
• https://github.com/RadiusNetworks/android-ibeacon-service
• https://github.com/Estimote/Android-SDK