Your SlideShare is downloading. ×
  • Like
Io13 deep dive   location api
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Io13 deep dive location api



Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. IO13 Deep Dive - Location API Technical deep dive What’s new in Location API Amrit Sanjeev Bangalore Android User Group
  • 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. Before the new API Things to keep in mind before you create your world using LBS 1
  • 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. LBS : Aspects to work on LBS Control (Legal) Trust (Social) Privacy (Ethical) Security (Technolog ical)
  • 6. Complexity: What devs needed to work with
  • 7. Trend : Changes in the type of application Task     Contextual  
  • 8. Complexity : Sensor usage
  • 9. 2 Introduction to new APIs Shiny new toys
  • 10. Obstacles in LBS adoption Fused Location provider Geofencing Acitvity monitoring
  • 11. API : Fused Location Provider Power Accuracy Coverage
  • 12. API : Fused Location Provider Before   AEer   •  Simplified API •  3 main aspects than was worked on •  Speed •  Accuracy •  Coverge
  • 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. 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. 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. Priority Modes
  • 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. 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;! ! •  Add geofences to the locationclient locationClient.addGeoFences(List<GeoFences> , Pending Intent ,… );!
  • 19. Advantages •  Reduces power usage •  System calls the pending intent to wake your application . •  Entry or exit areas
  • 20. Activity Recognition •  Sensor data to find the type of action the user is performing
  • 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. 3 How is it implemeted ? The internals
  • 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. Q&A