Why we rewrote
iBeacon handling
on Android
iBeacon is Trademark of Apple Inc!
Agenda
•Streethawk’s story for Beacons
•Choosing Radius library
•Problems with Radius SDK
•Apple’s plays it’s IP card
•Altbeacons
•Streethawk’s solution
A Quick Note on why this is relevant
“iBeacons” on iOS are pretty easy (special case of location services)
…easy if you only have 20 regions….
Beacons are harder on Android its at a lower Bluetooth level
iBeacon is Trademark of Apple Inc!
Streethawk’s need/use-case for “Beacons”
• Independent of GPS, best for indoor scenarios.
• Highly accurate location based campaigns
• Notifies when a user enters or exits beacons
region.
• Detects user’s distance from beacons
• Server/Cloud based personalisation
• For our customers needs are proximity & distance
- not to many other fancy features are needed
First we chose Radius library
• Open source library for Beacons (yay!)
• Works with all kinds of Beacons (yay!)
• Active developer community (yay!)
• Great support, lots of Q&A on Stack overflow (yay!)
Problems with Radius library
Background mode wasn’t working as
per our expectations.
Nexus 4/5 problems
Wifi signal dropped continuously.
When BLE scans occur - below the
HAL layer - unfixable
Distribution with Streethawk SDK
JAR dependency issues
Radius & Apple Legal Requirements
Radius introduce Altbeacons
Radius solution to:
iBeacon brand issues (e.g Android devices)
Library still under development
Too many Library updates (impact our SDK)
Altbeacon adoption as a “standard” is uncertain
Wifi dropping problem still exists
iBeacon is Trademark of Apple Inc!
What Why
We wrote our own parser
✓ Solved the distribution problem for
jars and aars
Same beacon detected for iOS and
Android
✓ Simple deployment and Cost of
Ownership
Nexus 4/5 Glitches solved
✓ Nexus has a huge installed base
carefully scheduling task for
scanning beacons
background/foreground different intervals
SDK compatible with other third
party beacons SDKs
e.g Bluecat Secure Mode
realistically you need to co-exist
Streethawk’s solution
The Logic
•Scan for available BLE devices
•Extract UUID,Major and Minor numbers
•Compare with list of beacons that customer has registered in
Streethawk’s console
•Notify server for the matched beacon
•Repeat the above process. Ignore beacons which were detected in
previous scans
•Notify server when beacon is no longer visible
Summary
1. Implementing Beacon parser
in Android is not as straight
forward as in iOS.
2. The old fragmentation issue is
everywhere (Nexus)
3. Risk: Will Google release
APIs for handling Beacons?
4. Will retailers place separate
Beacons for iOS and Android?
Thanks & Questions?
www: http://streethawk.com
SoundCloud: http://soundcloud.com/dj-streethawk
iTunes: http://bit.ly/MobileEngagementPodcast
Blog: http://streethawk.com/blog/
Twitter: @streethawkapp, @djinoz

Why Streethawk re-wrote ibeacon handling on Android

  • 1.
    Why we rewrote iBeaconhandling on Android iBeacon is Trademark of Apple Inc!
  • 2.
    Agenda •Streethawk’s story forBeacons •Choosing Radius library •Problems with Radius SDK •Apple’s plays it’s IP card •Altbeacons •Streethawk’s solution
  • 3.
    A Quick Noteon why this is relevant “iBeacons” on iOS are pretty easy (special case of location services) …easy if you only have 20 regions…. Beacons are harder on Android its at a lower Bluetooth level iBeacon is Trademark of Apple Inc!
  • 4.
    Streethawk’s need/use-case for“Beacons” • Independent of GPS, best for indoor scenarios. • Highly accurate location based campaigns • Notifies when a user enters or exits beacons region. • Detects user’s distance from beacons • Server/Cloud based personalisation • For our customers needs are proximity & distance - not to many other fancy features are needed
  • 5.
    First we choseRadius library • Open source library for Beacons (yay!) • Works with all kinds of Beacons (yay!) • Active developer community (yay!) • Great support, lots of Q&A on Stack overflow (yay!)
  • 6.
    Problems with Radiuslibrary Background mode wasn’t working as per our expectations. Nexus 4/5 problems Wifi signal dropped continuously. When BLE scans occur - below the HAL layer - unfixable Distribution with Streethawk SDK JAR dependency issues
  • 7.
    Radius & AppleLegal Requirements
  • 8.
    Radius introduce Altbeacons Radiussolution to: iBeacon brand issues (e.g Android devices) Library still under development Too many Library updates (impact our SDK) Altbeacon adoption as a “standard” is uncertain Wifi dropping problem still exists iBeacon is Trademark of Apple Inc!
  • 9.
    What Why We wroteour own parser ✓ Solved the distribution problem for jars and aars Same beacon detected for iOS and Android ✓ Simple deployment and Cost of Ownership Nexus 4/5 Glitches solved ✓ Nexus has a huge installed base carefully scheduling task for scanning beacons background/foreground different intervals SDK compatible with other third party beacons SDKs e.g Bluecat Secure Mode realistically you need to co-exist Streethawk’s solution
  • 10.
    The Logic •Scan foravailable BLE devices •Extract UUID,Major and Minor numbers •Compare with list of beacons that customer has registered in Streethawk’s console •Notify server for the matched beacon •Repeat the above process. Ignore beacons which were detected in previous scans •Notify server when beacon is no longer visible
  • 11.
    Summary 1. Implementing Beaconparser in Android is not as straight forward as in iOS. 2. The old fragmentation issue is everywhere (Nexus) 3. Risk: Will Google release APIs for handling Beacons? 4. Will retailers place separate Beacons for iOS and Android?
  • 12.
    Thanks & Questions? www:http://streethawk.com SoundCloud: http://soundcloud.com/dj-streethawk iTunes: http://bit.ly/MobileEngagementPodcast Blog: http://streethawk.com/blog/ Twitter: @streethawkapp, @djinoz