location-based services on android

Post on 28-Jan-2015

127 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

My talk at the GDG DevFest Bacolod 2012 (November 5, 2012)

TRANSCRIPT

Location-Based Services on Android

Jomar TigcalGDG DevFest Bacolod 2012

November 5, 2012

Jomar Tigcal

● Community Manager of GDG Philippines● Mobile Apps Developer● Software Engineer at Stratpoint

Technologies, Inc.● One of the developers of Moochfood

http://jomar.tigcal.comjomar@tigcal.com

@jomartigcal

MoochfoodMoochfood is an Android application that allows you to record, rate and share dining experiences.

http://www.moochfood.com/

Location

Challenges

● Obtaining user location can consume a lot of battery

● Getting location takes some time● Because the user location changes, you

must account for movement by re-estimating user location every so often.

● Location estimates from each source may not be accurate.

android.location

Android provides a location framework that your application can use to determine the device's location and bearing and register for updates.

http://developer.android.com/reference/android/location/package-summary.html

Android Permissions

● ACCESS_COARSE_LOCATION -> Network Provider: cell tower and Wi-Fi signals

● ACCESS_FINE_LOCATION-> GPS Provider

Android Permissions

Note: If you are using both NETWORK_PROVIDER and GPS_PROVIDER, then you need to request only the ACCESS_FINE_LOCATION permission, because it includes permission for both.

Android Location API

● LocationA class representing a geographic location sensed at a particular time.

● LocationManagerThis class provides access to the system location services.

● LocationListenerInterface used for receiving notifications from the LocationManager when the location has changed.

Image Source: http://evalblog.com/2011/06/06/where-am-i/

Getting User Location

Getting User Location

● Create an instance of LocationManagerLocation locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

● Check Location Providerfinal boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

Getting User Location

● Start listening for location updateslocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

● Stop listening for location updateslocationManager.removeUpdates(this);

Getting User Location

Getting User Location

Getting User Location

What's next?

Commonly used APIs

Image Sources: http://developer.foursquare.com and http://thegreasywiener.com/

Google Places API ● Place Searches return a list of Places based on

a user's location or search string.● Place Details requests return more detailed

information about a specific Place, including user reviews.

● Place Actions allow you to supplement the data in Google's Places Database with data from your application. You can schedule Events, add and remove Places, or weight Place rankings from user activity with Place Bumps.

Google Places API ● Places Autocomplete can be used to provide

autocomplete functionality for text-based geographic searches, by returning Places as you type.

● Query Autocomplete can be used to provide a query prediction service for text-based geographic searches, by returning suggested queries as you type.

Getting API Key

● Go to Google APIs console (http://code.google.com/apis/console)

● Create an API Project● Select Services● Turn on Places API

Places Search

● Nearby Searchby location (latitude, longitude)

● Text Searchby search query (e.g. "pizza in Bacolod")

Nearby Search Syntax

Syntax:https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

Output: Either json or xml

Nearby Search Required Parameters

● keyAPI Key

● location latitude, longitude● radius

distance in meters, maximum of 50, 000 m● sensor (true/false)

if request came from location sensor (GPS)

Nearby Search Optional Parameters

keyword - content

language - language code

name - name

rankby - prominence or distance*if rankby=distance, radius should not be included

types

pagetoken

Place Search Types

Separated by |

Examples:food restaurant convenience_storehospital school grocery_or_supermarket

More at:https://developers.google.com/places/documentation/supported_types

Example

● Place Search:https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=loc_here&sensor=true&radius=500&key=key_here● Type=foodhttps://maps.googleapis.com/maps/api/place/nearbysearch/json?location=loc_here&sensor=true&radius=500&types=food&key=key_here

Foursquare API

Core API: Check in, view their history, see where their friends are, create tips and lists, search for and learn more about venues, and access specials and recommendations.

Real-time API: Venue push API notifies venue managers when users check in to their venues, and our user push API notifies developers when their users check in anywhere.

Foursquare API

Merchant Platform: Allows developers to write applications that help registered venue owners manage their foursquare presence and specials.

Venues Platform: Search for places and access a wealth of information about them, including addresses, popularity, tips, and photos.

Foursquare Venues Search

Search Foursquare database and find information including tips, photos, check-in counts, and here now

Syntax:

https://api.foursquare.com/v2/venues/search

Venues Search Parameters

Required Parameters:

● ll (latitude, longitude) - user's locationor

● near (text) - place where to search

● v (YYYYMMDD) indicates that the client is up to date as of the specified date

Venues Search Parameters

Optional Parameters:

● query - name of place to search● limit - number of results (max is 50)● radius - distance in meters (max is 10,000)● categoryId - comma-separated categories to

limit search

Foursquare Demo

Deadline: November 30, 2012

Google Places API Challenge 2012http://developers.google.com/places/challenge/

December 1, 2012

Foursquare Hack Day Philippineshttp://hackday.webgeek.ph/

Questions?

Image Source: http://www.smoblog.com/

Thank you very much!

Location-Based Services on Android

Jomar TigcalGDG DevFest Bacolod 2012

November 5, 2012

top related