Trifork iBeacon Demo
Mobile 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
th...
What is iBeacons
Bluetooth LE Support
• Requires a Bluetooth LE chip. Only newer phones/
tablets has it.
• Windows: Phone 8.1 (?%), Lumia 5...
iBeacon protocol
• Advertisement bluetooth
package.
• Mac-address is spoofed on
iOS.
• Proximity UUID: 16 byte UUID
• Majo...
Detecting a iBeacon
• Can make drive-by-detection hard. Battery matters on both
ends.
• Devices do not talk to each other....
Detecting proximity
• Just check for existence of the
right combination of
<Proximity UUID, Major,
Minor>
• No guarantee t...
Detecting range
• Hard problem. Many scientific papers
on the subject.
• Water blocks bluetooth signals. Guess
what humans ...
Code/SDK’s
• Android doesn’t not provide a common API. Each
app must implement it.
• Androids Geofencing API doesn’t suppo...
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...
Links
• http://en.wikipedia.org/wiki/IBeacon
• http://www.warski.org/blog/2014/01/how-ibeacons-work/
• http://stackoverflow...
Upcoming SlideShare
Loading in …5
×

Trifork iBeacon Demo Lunch Talk

3,309 views

Published on

Slides from a Trifork Mobile lunch talk about iBeacons on Android on 5/5-2014.

Published in: Technology

Trifork iBeacon Demo Lunch Talk

  1. 1. Trifork iBeacon Demo Mobile Lunch 05.05.2014
  2. 2. Bluetooth Low Energy (BLE)
  3. 3. 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.
  4. 4. What is iBeacons
  5. 5. 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+
  6. 6. 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.
  7. 7. 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.
  8. 8. Detecting proximity • Just check for existence of the right combination of <Proximity UUID, Major, Minor> • No guarantee that iBeacon is unique.
  9. 9. 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”.
  10. 10. 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
  11. 11. Keynote now has animated GIF Support :)
  12. 12. 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.
  13. 13. 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

×