page.title=Making Your App Location-Aware
page.tags=location,geofence,geofencing,activity recognition,activity detection,gps

trainingnavtop=true
startpage=true


@jd:body

<div id="tb-wrapper">
<div id="tb">

<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
<h2>Dependencies and prerequisites</h2>
<ul>
    <li>Google Play services client library (latest version)</li>
    <li>Android version 2.2 (API level 8) or later</li>
</ul>

<!-- related docs (NOT javadocs) -->
<h2>You should also read</h2>
<ul>
    <li>
        <a href="{@docRoot}google/play-services/setup.html">Setup Google Play Services SDK</a>
    </li>
</ul>

</div>
</div>

<p>
    One of the unique features of mobile applications is location awareness. Mobile users bring
    their devices with them everywhere, and adding location awareness to your app offers users a
    more contextual experience. The new Location Services API available in Google Play services
    facilitates adding location awareness to your app with automated location tracking,
    geofencing, and activity recognition. This API adds significant advantages over the plaform's
    location API.
</p>
<p>
    This class shows you how to use Location Services in your app to get the current location,
    get periodic location updates, look up addresses, create and monitor geofences, and
    detect user activities. The class includes sample apps and code snippets that you can use as a
    starting point for adding location awareness to your own app.
</p>
<p class="note">
    <strong>Note:</strong> Since this class is based on the Google Play services client library,
    make sure you install the latest version before using the sample apps or code snippets. To learn
    how to set up the client library with the latest version, see
    <a href="{@docRoot}google/play-services/setup.html">Setup</a> in the Google Play services guide.
</p>
<h2>Lessons</h2>
<dl>
    <dt>
        <b><a href="retrieve-current.html">Retrieving the Current Location</a></b>
    </dt>
    <dd>
        Learn how to retrieve the user's current location.
    </dd>
    <dt>
        <b><a href="receive-location-updates.html">Receiving Location Updates</a></b>
    </dt>
    <dd>
        Learn how to request and receive periodic location updates.
    </dd>
    <dt>
        <b><a href="display-address.html">Displaying a Location Address</a></b>
    </dt>
    <dd>
        Learn how to convert a location's latitude and longitude into an address (reverse
        geocoding).
    </dd>
    <dt>
        <b>
            <a href="geofencing.html">Creating and Monitoring Geofences</a>
        </b>
    </dt>
    <dd>
        Learn how to define one or more geographic areas as locations of interest, called geofences,
        and detect when the user is close to or inside a geofence.
    </dd>
    <dt>
        <b><a href="activity-recognition.html">Recognizing the User's Current Activity</a></b>
    </dt>
    <dd>
        Learn how to recognize the user's current activity, such as walking, bicycling,
        or driving a car, and how to use this information to modify your app's location strategy.
    </dd>
    <dt>
        <b><a href="location-testing.html">Testing Using Mock Locations</a></b>
    </dt>
    <dd>
        Learn how to test a location-aware app by injecting mock locations into Location
        Services. In mock mode, Location Services sends out mock locations that you inject instead
        of sensor-based locations.
    </dd>
</dl>
