Io13 deep dive location api

803 views
590 views

Published on

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

No Downloads
Views
Total views
803
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×