SlideShare uma empresa Scribd logo
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
implmented
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%	
  
• 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%
	
  
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 
•  Accuracy 
•  Coverge
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
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);!
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);!
!
Priority Modes
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
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 ,… );!
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(…);!
•  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();!
!
!
3 How is it implemeted ?
The internals
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
Q&A
June2013 Meetup : IO13 Deep Dive-Location_api_AmritSanjeev

Mais conteúdo relacionado

Semelhante a June2013 Meetup : IO13 Deep Dive-Location_api_AmritSanjeev

IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICSIEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
aswin tbbc
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Location Based Services - An Overview
Location Based Services - An Overview Location Based Services - An Overview
Location Based Services - An Overview
amsanjeev
 
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based IntegrationsWordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
lukepilon
 

Semelhante a June2013 Meetup : IO13 Deep Dive-Location_api_AmritSanjeev (20)

Developing Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location ServicesDeveloping Windows Phone Apps with Maps and Location Services
Developing Windows Phone Apps with Maps and Location Services
 
IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICSIEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
IEEE PROJECT TOPICS & ABSTRACTS BY SOFTRONIICS
 
MSPA Europe - How digital technology changes mystery shopping (nfc, ir, qr co...
MSPA Europe - How digital technology changes mystery shopping (nfc, ir, qr co...MSPA Europe - How digital technology changes mystery shopping (nfc, ir, qr co...
MSPA Europe - How digital technology changes mystery shopping (nfc, ir, qr co...
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
 
Mobile applications chapter 6
Mobile applications chapter 6Mobile applications chapter 6
Mobile applications chapter 6
 
[DSC Europe 23] Runxin Li - Capturing and Validating Real World Movements of ...
[DSC Europe 23] Runxin Li - Capturing and Validating Real World Movements of ...[DSC Europe 23] Runxin Li - Capturing and Validating Real World Movements of ...
[DSC Europe 23] Runxin Li - Capturing and Validating Real World Movements of ...
 
[English] Create Mobile LBS Application Using Maps API
[English] Create Mobile LBS Application Using Maps API[English] Create Mobile LBS Application Using Maps API
[English] Create Mobile LBS Application Using Maps API
 
Android location based services
Android location based servicesAndroid location based services
Android location based services
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suroDevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
 
Opportunities and Challenges in Open Source AR in 2018
Opportunities and Challenges in Open Source AR in 2018Opportunities and Challenges in Open Source AR in 2018
Opportunities and Challenges in Open Source AR in 2018
 
Location Based Services - An Overview
Location Based Services - An Overview Location Based Services - An Overview
Location Based Services - An Overview
 
WordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based IntegrationsWordCamp Columbus - Location Based Integrations
WordCamp Columbus - Location Based Integrations
 
Mobile development in age of Internet of Things and programming Apple Watch
Mobile development in age of Internet of Things and programming Apple WatchMobile development in age of Internet of Things and programming Apple Watch
Mobile development in age of Internet of Things and programming Apple Watch
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
W3 c geolocation api
W3 c geolocation apiW3 c geolocation api
W3 c geolocation api
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 
orioncontextbroker-20180615
orioncontextbroker-20180615orioncontextbroker-20180615
orioncontextbroker-20180615
 
Yahoo! Geo Technologies-IITD
Yahoo! Geo Technologies-IITDYahoo! Geo Technologies-IITD
Yahoo! Geo Technologies-IITD
 

Mais de BlrDroid

July 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
July 2013 Meetup : Introduction To App Publish - Ujjwal KabraJuly 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
July 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
BlrDroid
 
July2013 Meetup : App Store Optimization - Shankar soma
July2013 Meetup : App Store Optimization - Shankar somaJuly2013 Meetup : App Store Optimization - Shankar soma
July2013 Meetup : App Store Optimization - Shankar soma
BlrDroid
 
June2013 Meetup : In-App Billing by Soham & Senthil
June2013 Meetup : In-App Billing by Soham & SenthilJune2013 Meetup : In-App Billing by Soham & Senthil
June2013 Meetup : In-App Billing by Soham & Senthil
BlrDroid
 
IO13 : What it means to the users
IO13 : What it means to the usersIO13 : What it means to the users
IO13 : What it means to the users
BlrDroid
 

Mais de BlrDroid (20)

Post I/O 2014 Meetup : Google I/O '14 recap- Amrit Sanjeev
Post I/O 2014 Meetup : Google I/O '14 recap- Amrit SanjeevPost I/O 2014 Meetup : Google I/O '14 recap- Amrit Sanjeev
Post I/O 2014 Meetup : Google I/O '14 recap- Amrit Sanjeev
 
June 2014 - Android wear
June 2014 - Android wearJune 2014 - Android wear
June 2014 - Android wear
 
June 2014 - IPC in android
June 2014 - IPC in androidJune 2014 - IPC in android
June 2014 - IPC in android
 
June 2014 - Building Rabbit MQ based chat on Android
June 2014 - Building Rabbit MQ based chat on AndroidJune 2014 - Building Rabbit MQ based chat on Android
June 2014 - Building Rabbit MQ based chat on Android
 
Challenges in writing roboelectric tests
Challenges in writing roboelectric tests Challenges in writing roboelectric tests
Challenges in writing roboelectric tests
 
How to leverage cloud for QA process
How to leverage cloud for QA processHow to leverage cloud for QA process
How to leverage cloud for QA process
 
Usability Testing Made Easy
Usability Testing Made EasyUsability Testing Made Easy
Usability Testing Made Easy
 
How Mobile Developers Could Leverage On Big Data and Data Points to understan...
How Mobile Developers Could Leverage On Big Data and Data Points to understan...How Mobile Developers Could Leverage On Big Data and Data Points to understan...
How Mobile Developers Could Leverage On Big Data and Data Points to understan...
 
Internals of AsyncTask
Internals of AsyncTask Internals of AsyncTask
Internals of AsyncTask
 
Increasing downloads, ratings and revenues
Increasing downloads, ratings and revenues Increasing downloads, ratings and revenues
Increasing downloads, ratings and revenues
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech Session
 
March 2014 Meetup Baug Android and Google App Engine
March 2014 Meetup Baug Android and Google App EngineMarch 2014 Meetup Baug Android and Google App Engine
March 2014 Meetup Baug Android and Google App Engine
 
Android Security - Common Security Pitfalls in Android Applications
Android Security - Common Security Pitfalls in Android ApplicationsAndroid Security - Common Security Pitfalls in Android Applications
Android Security - Common Security Pitfalls in Android Applications
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript
 
Dexetra Labs - Building Apps that can get featured
Dexetra Labs - Building Apps that can get featuredDexetra Labs - Building Apps that can get featured
Dexetra Labs - Building Apps that can get featured
 
July 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
July 2013 Meetup : Introduction To App Publish - Ujjwal KabraJuly 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
July 2013 Meetup : Introduction To App Publish - Ujjwal Kabra
 
July2013 Meetup : App Store Optimization - Shankar soma
July2013 Meetup : App Store Optimization - Shankar somaJuly2013 Meetup : App Store Optimization - Shankar soma
July2013 Meetup : App Store Optimization - Shankar soma
 
June2013 Meetup : In-App Billing by Soham & Senthil
June2013 Meetup : In-App Billing by Soham & SenthilJune2013 Meetup : In-App Billing by Soham & Senthil
June2013 Meetup : In-App Billing by Soham & Senthil
 
IO13 Recap
IO13 RecapIO13 Recap
IO13 Recap
 
IO13 : What it means to the users
IO13 : What it means to the usersIO13 : What it means to the users
IO13 : What it means to the users
 

Último

Último (20)

Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 

June2013 Meetup : IO13 Deep Dive-Location_api_AmritSanjeev

  • 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  
  • 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);! !
  • 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 =gBuilder.build();! ! •  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