Note: This is a guide to the Android framework location APIs in the
android.location. The Google Location Services API, part of Google Play
Services, provides a more powerful, high-level framework that automates tasks such as
location provider choice and power management. Location Services also provides new
features such as activity detection that aren't available in the framework API. Developers who
are using the framework API, as well as developers who are just now adding location-awareness
to their apps, should strongly consider using the Location Services API.
To learn more about the Location Services API, see Google Location Services for Android.
Location and maps-based apps offer a compelling experience on mobile devices. You
can build these capabilities into your app using the classes of the
android.location package and the Google Maps Android API. The sections below provide
an introduction to how you can add the features.
Android gives your applications access to the location services supported by
the device through classes in the
android.location package. The
central component of the location framework is the
LocationManager system service, which provides APIs to
determine location and bearing of the underlying device (if available).
As with other system services, you do not instantiate a
directly. Rather, you request an instance from the system by calling
getSystemService(Context.LOCATION_SERVICE). The method returns a handle to a new
Once your application has a
LocationManager, your application
is able to do three things:
Query for the list of all
LocationProviderinstances to determine the last known user location.
Note: On Android 8.0 (API level 26) and higher, if an app is running in the background when it requests the current location, then the device calculates the location only a few times each hour. For more information, see Background Location Limits.
- Register/unregister for periodic updates of the user's current location from a location provider (specified either by criteria or name).
- Register/unregister for a given
Intentto be fired if the device comes within a given proximity (specified by radius in meters) of a given lat/long.
For more information about acquiring the user location, read the Location Strategies guide.
Google Maps Android API
With the Google Maps Android API, you can add maps to your app that are based on Google Maps data. The API automatically handles access to Google Maps servers, data downloading, map display, and touch gestures on the map. You can also use API calls to add markers, polygons and overlays, and to change the user's view of a particular map area.
The key class in the Google Maps Android API is
displays a map with data obtained
from the Google Maps service. When the
has focus, it will capture
keypresses and touch gestures to pan and zoom the map automatically, including
handling network requests for additional maps tiles. It also provides all of the
UI elements necessary for users to control the map. Your application can also
class methods to control the map programmatically and draw a
number of overlays on top of the map.
The Google Maps Android APIs are not included in the Android platform, but are available on any device with the Google Play Store running Android 2.2 or higher, through Google Play services.
To integrate Google Maps into your app, you need to install the Google Play services libraries for your Android SDK. For more details, read about Google Play services.