Location Services

Once your application has a handle to a LocationManager instance, your application will be able to do three things:

• Query for the list of all LocationProviders known to the LocationManager for its last known location.

• Register/unregister for periodic updates of current location from a LocationProvider (specified either by Criteria or name).

• Register/unregister for a given Intent to be fired if the device comes within a given proximity (specified by radius in meters) of a given lat/long.

However, during initial development in the emulator, you may not have access to real data from a real location provider (Network or GPS). In that case, it may be necessary to spoof some data for your application using a mock location provider.

Note: If you've used mock LocationProviders in previous versions of the SDK, you can no longer provide canned LocationProviders in the /system/etc/location directory. These directories will be wiped during boot-up. Please follow the new procedures outlined below.

Providing Mock Location Data

When testing your application on the Android emulator, there are a couple different ways to send it some mock location data: you can use the DDMS tool or the "geo" command option in the emulator console.

Using DDMS

With the DDMS tool, you can simulate location data a few different ways:

• Manually send individual longitude/latitude coordinates to the device.

• Use a GPX file describing a route for playback to the device.

• Use a KML file describing individual placemarks for sequenced playback to the device. For more information on using DDMS to spoof location data, see the Using DDMS guide.

Using the "geo" command in the emulator console

Launch your application in the Android emulator and open a terminal/console in your SDK's / tools directory. Connect to the emulator console. Now you can use:

• geo fix to send a fixed geo-location.

This command accepts a longitude and latitude in decimal degrees, and an optional altitude in meters. For example:

geo fix -121.45356 46.51119 4392

Android gives your applications access to the location services supported by the device through the classes in the android.locationpackage. The central component of the location framework is the LocationManager system service, which provides an API to determine location and bearing if the underlying device (if it supports location capabilities).

As with other system services, you do not instantiate a LocationManager directly. Rather, you request an LocationManager instance from the system by calling getSystemService(Context.LOCATION SERVICE). The method returns a handle to a new LocationManager instance.

• geo nmea to send an NMEA 0183 sentence.

geo nmea $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62

For information about how to connect to the emulator console, see Using the Emulator Console

0 0

Post a comment