iBeacons are reasonable easy on iOS devices if you have less that 20 beacons. To use the same beacon hardware on Android is not so easy unless you commit to a single Beacon vendor.
We wanted to leverage multiple (unlimited!???) beacon vendors on iOS and Android and needed to write a brand agnostic
2. Agenda
•Streethawk’s story for Beacons
•Choosing Radius library
•Problems with Radius SDK
•Apple’s plays it’s IP card
•Altbeacons
•Streethawk’s solution
3. 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!
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 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!)
6. 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
8. 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!
9. 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
10. 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
11. 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?