0
IO13 Deep Dive - Location API
Technical deep dive
What’s new in Location API
Amrit Sanjeev
Bangalore Android User Group
What’s on the agenda today ?
Let go and find where our users are 
 

1Before the
new API 


2New APIs


3How is it
implmen...
Before the new API
Things to keep in mind before you create your world using LBS
1
Some interesting stats 

• people	
  where	
  
aware	
  of	
  LBS	
  63%	
  
• report	
  having	
  
used	
  LBS	
  52%	
  ...
LBS : Aspects to work on 
LBS
Control 
(Legal)
Trust
(Social)
Privacy
(Ethical)
Security
(Technolog
ical)
Complexity: What devs needed to work with
Trend : Changes in the type of application
Task	
  	
   Contextual	
  
Complexity : Sensor usage
2 Introduction to new APIs
Shiny new toys
Obstacles in LBS adoption
Fused Location provider
Geofencing
Acitvity monitoring
API : Fused Location Provider
Power
Accuracy 
Coverage
API : Fused Location Provider
Before	
   AEer	
  
•  Simplified API
•  3 main aspects than was worked on 
•  Speed 
•  Accu...
Major Changes
Abstracts the use and
switching between
different hardware
based on availability .
Simpler API and
workflow
B...
Workflow – with listeners
•  Create a instance of location client 
locationClient = new LocationClient();!
!
•  Call connec...
Workflow – with pending intent
•  Create a pending intent 
PendingIntent pIntent = PendingIntent.getService(…);!
•  Request...
Priority Modes
GeoFencing – What and why
Virtual fence around a
area that can be defined
to get updates of users
entering and exiting 
Reg...
Workflow 
•  Create a instance of location client 
locationClient = new LocationClient();!
•  In onConnected() callback , c...
Advantages
•  Reduces power usage
•  System calls the pending intent to wake your
application .
•  Entry or exit areas
Activity Recognition
•  Sensor data to find the type of action the user
is performing
Workflow 

•  Create an activity recognition client 
ActivityRecognitionClient aClient = new
ActivityRecognitionClient(…);!...
3 How is it implemeted ?
The internals
Distribution channel 

Google play
services channel
Backward
Compactible to
Froyo
Enhance APIs for
indoor mapping 
Auto up...
Q&A
Io13 deep dive   location api
Upcoming SlideShare
Loading in...5
×

Io13 deep dive location api

329

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
329
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Io13 deep dive location api "

  1. 1. IO13 Deep Dive - Location API Technical deep dive What’s new in Location API Amrit Sanjeev Bangalore Android User Group
  2. 2. What’s on the agenda today ? Let go and find where our users are  1Before the new API 2New APIs 3How is it implmented
  3. 3. Before the new API Things to keep in mind before you create your world using LBS 1
  4. 4. Some interesting stats • people  where   aware  of  LBS  63%   • report  having   used  LBS  52%   • thought  it  was   valuable  94%   • expressed   concerns    52%   •  32% use it every month •  10% use it every day •  18% tell others their location   •  Expose location without consent 84% •  Identity theft 84% •  Loss of privacy 84%  
  5. 5. LBS : Aspects to work on LBS Control (Legal) Trust (Social) Privacy (Ethical) Security (Technolog ical)
  6. 6. Complexity: What devs needed to work with
  7. 7. Trend : Changes in the type of application Task     Contextual  
  8. 8. Complexity : Sensor usage
  9. 9. 2 Introduction to new APIs Shiny new toys
  10. 10. Obstacles in LBS adoption Fused Location provider Geofencing Acitvity monitoring
  11. 11. API : Fused Location Provider Power Accuracy Coverage
  12. 12. API : Fused Location Provider Before   AEer   •  Simplified API •  3 main aspects than was worked on •  Speed •  Accuracy •  Coverge
  13. 13. Major Changes Abstracts the use and switching between different hardware based on availability . Simpler API and workflow Better battery performance Better average accuracy Support for both listeners and pending intents
  14. 14. Workflow – with listeners •  Create a instance of location client locationClient = new LocationClient();! ! •  Call connect on it locationClient.connect();! ! •  Get the last location if required by your logic Location loc = locationClient.getLastLocation();! ! •  Create a location request LocationRequest request = new LocationRequest();! request.setInterval(5000);! request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);! •  Request of location updates passing the request and listener locationClient.requestLocationUpdates(request, listener);!
  15. 15. Workflow – with pending intent •  Create a pending intent PendingIntent pIntent = PendingIntent.getService(…);! •  Request of location updates passing the request and listener locationClient.requestLocationUpdates(request, listener);! ! •  Write code to handle the intent Public void onHandleIntent(Intent intent);! !
  16. 16. Priority Modes
  17. 17. GeoFencing – What and why Virtual fence around a area that can be defined to get updates of users entering and exiting Register 100 geofences in one app Simple api for adding and removing geofences Adjusts location updates based on user’s proximity to the geofence and user’s activity (still, walking, driving, and so on). Roughly 2/3 power saving compared to proximity alert
  18. 18. Workflow •  Create a instance of location client locationClient = new LocationClient();! •  In onConnected() callback , create a geofence object Geofence.Builder gBuilder = new Geofence.Builder();! gBuilder.setTransitionType(…);! gBuilder.setCircularRegion(lat, long , radius);! gBuilder.setExpirationDuration(duration);! GeoFence gFence =gBuilder.build();! ! •  Add geofences to the locationclient locationClient.addGeoFences(List<GeoFences> , Pending Intent ,… );!
  19. 19. Advantages •  Reduces power usage •  System calls the pending intent to wake your application . •  Entry or exit areas
  20. 20. Activity Recognition •  Sensor data to find the type of action the user is performing
  21. 21. Workflow •  Create an activity recognition client ActivityRecognitionClient aClient = new ActivityRecognitionClient(…);! •  Connect the client aClient.connect();! ! •  Request for activity updates aClient.requestActivityUpdates(interval , callbackIntent)! ! •  Use onHandleIntent to get the calllback and extract the activity type . ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);! DetectedActivity act = result.getMostProbableActivity();! ! !
  22. 22. 3 How is it implemeted ? The internals
  23. 23. Distribution channel Google play services channel Backward Compactible to Froyo Enhance APIs for indoor mapping Auto update and faster release cycles for new features Improve accuracy using new tech like BT4.0 and 802.11v
  24. 24. Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×