Upload
tushar-choudhary
View
175
Download
3
Embed Size (px)
DESCRIPTION
Businesses large and small are fast realizing the importance of big data and are investing huge amounts of time and money to gather it. For retailers, the ROI potential from unified big data collection is exponential. After all, retailers collect online sales data, mobile and apps data, customer footfall data, as well as enterprise integration’s for loyalty, CRM and ERP. Beacons provide businesses with endless opportunities to collect massive amounts of untapped data, such as the number of beacon hits and customer dwell time at a particular location within a specified time and date range, busiest hours throughout the day or week, number of people who walk by a location each day, etc. This data then allows retailers to accordingly make improvements to products, staff allocation in various departments and services, and so on
Citation preview
Hack your Business
with android +
beacons + big data
Tushar Choudhary
Mobile consultant, Xebia
Agenda
What, Why & How
Bluetooth versus BLE
Beacons & GPS
Case Study
Android & Beacons
Dummy App
Beacons : What They Are ? How They work ? Why They are Important ?
What are Beacons ?
• Beacons are small piece of hardware devices that can emit and receive BLE signals.
Beacons
Bluetooth Technology ?
• Radio
• Software Stack
Bluetooth LE : What is it ?
A Specification With
A New Radio, New Software stack & New Profile Architecture
• Used to create Bluetooth LE chipsets - e.g. contact chipsets
• Chipsets are embedded in the devices
Bluetooth Classic Vs Bluetooth LE
Voice Data Audio Video State
Bluetooth X Y Y X X
BLE X X X X Y
Bluetooth Classic Vs Bluetooth LE
Bluetooth BLE
Connection Connection Oriented Connectionless
Data Payload 2 Mbps ~ 100 Kbps
Power Consumption
High Low
Transmission File Transmission State Transmission
Currently Supported by devices :
GOOGLE Nexus 4,5,7,10
GPS Cameras
Security Equipments Laptops
90% of devices will be BLE enabledby 2018
Beacons/BLE : How They Work ?
• BLE enabled devices or Beacons can transmits small packets of data.
• This wakes up a “listener/receiver” to let it know that it’s there.
• Which then lets you calculate the proximity to the Beacon and show relevant information to visitors.
Beacon Data Packet
Why are Beacons important ?
Advantage to Developers
Before BLE After BLE
An app would need to be running
in the foreground or background
to communicate with a BLE
device.
An app can be launched into
background if a specific BLE
device is recognized.
Beacons & GPS
• Beacons can be thought as an extension of location technology.
• It’s lot like GPS but uses a lot less battery.
• GPS does not work well once you go inside but Bluetooth LE works.
Beacons & GPS
GPS is a Location Technology
Bluetooth LE is a Proximity Technology.
Beacons : Proximity
Why Proximity Matters ?
We can now deliver the content and experiences to users based on precise proximity to things in physical world
Customer Passes By a Retail Store
Customer Receives Notifications and Offers
Indoor Navigation : Showing the Route
Indoor Navigation : Showing the Route
Indoor Navigation : Showing the Route
Indoor Navigation : Showing the Route
Indoor Navigation : Showing the Route
Presence Detection via Proximity
Navigating Customer
Showing Other Offers
Pushing Notifications
Case Study : Retail Business
• Greet Customers when they arrive.
• Send special offers and coupons at specific locations on store.
• Offer personal pricing.
• Implementing proximity driven ad-screen.
Real-TimeAnalytics & Statistics
Real-TimeAnalytics & Statistics
Statistics & Analytics : Retail Business
• Aggregate and analyze behavior and traces of the customers.
• Analyze interests and shopping decisions of your customers -‐ in your shop but even off location.
• Be able to take action on customers behavior and feedbacks.
• Increase in-store visitor experience.
• Optimize Target Online Marketing.
• Have meaningful dashboards at your fingertips
• Run cross-dataset analysis, do peer comparisons, and generate actionable report
Statistics & Analytics : Retail Business
Android BeaconsSupported on Android API >= 4.2
• All android devices above 4.2 have BLE enabled in itselves.
• They can act as a Receiver/Listener and can wake up once supported application receives a signal
• Android Devices having version > 4.4 i.e. Android-L devices can also act as a BLE Transmitter
Android Beacons & Support Libraries
Android Beacon Library:https://github.com/AltBeacon/android-beacon-library-reference
Smart Gatt Library:
https://github.com/movisens/SmartGattLib
Bluetooth LE Library Android:
https://github.com/alt236/Bluetooth-LE-Library---Android
Practical Use Case
Luggage Tracker
Use Case : Luggage Tracker
1. Implement a broadcast receiver to catch broadcasts for turning bluetooth on and off.
2. Start a service when bluetooth turns on.
3. Stop service when bluetooth turns off
4. Register a listener to listen for nearby beacon devices
Implementing Broadcast Receiver@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if
(BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) {
int state =
intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1);
Intent i;
switch (state) {
case BluetoothAdapter.STATE_OFF:
if (MyBeaconService.isStarted) {
i = new Intent(context,
MyBeaconIntentService.class);
i.putExtra("StartBeaconService",
false);
context.stopService(i);
}
Log.i(TAG, "Bluetooth State : OFF");
break;
case BluetoothAdapter.STATE_ON:
Log.i(TAG, "Bluetooth State : ON");
if (!MyBeaconService.isStarted) {
i = new Intent(context,
MyBeaconIntentService.class);
i.putExtra("StartBeaconService",
true);
context.startService(i);
}
break;
Registering Ranging Listener in
Service’s onCreate() method@Override
public void onCreate() {
super.onCreate();
beaconManager.setMonitoringListener(new
BeaconManager.MonitoringListener() {
@Override
public void onExitedRegion(Region arg0) {
// TODO Auto-generated method stub
Util.postNotification(getBaseContext(),
"Alert Luggage Tracker",
notificationManager, 1,
AllDemosActivity.class);
}
@Override
public void onEnteredRegion(Region arg0, List<Beacon>
arg1) {
// TODO Auto-generated method stub
}});
}
Connecting to BeaconManager’s Service
in Service’s onStartCommand()@Override
public int onStartCommand(Intent intent, int flags, int startId) {
beaconManager.connect(new
BeaconManager.ServiceReadyCallback() {
@Override
public void onServiceReady() {
try {
beaconManager.startMonitoring(BEACONS);
} catch (RemoteException e) {
Log.e(TAG, "Cannot start
ranging", e);
} catch (Exception e) {
e.printStackTrace();
}
}
});
return START_NOT_STICKY;
}
Technical pitfalls of Beacons ?
• Bluetooth must be turned on.
• Your app must be installed on users devices.
• You can't trigger mobile beacon or iBeacon to trigger installation of an app.
• Location services must be enabled for the specific application.
• To download real data we must have an app connected via internet connection.