You can specify the simulated location of the emulator while it is running. To do this, choose View > External Events Generator from the emulator window’s menu. Click the Location tab.
In the Location area of the tab, you can fill in values for the latitude, longitude, altitude, speed, and course. Applications that use the Location API can retrieve these values as the location of the emulator.
For more elaborate testing, you can set up a location script that describes motion over time. Location scripts are XML files consisting of a list of locations, called waypoints, and associated times. The Java ME Platform SDK determines the current location of the emulator by interpolating between the points in the location script. Here, for example, is a simple location script that specifies a starting point (time="0") and moves to a new point in ten seconds:
<waypoints> <waypoint time="0" latitude="14" longitude="50" altitude="310" /> <waypoint time="10000" latitude="14.5" longitude="50.1" altitude="215" /> </waypoints>
The altitude measurement is in meters, and the time values are in milliseconds.
Use a text editor to create your location script. You can load it into the external event window by pressing the Browse button next to the Script field. Immediately below are controls for playing, pausing, stopping, and moving to the beginning and end of the location script. You can also drag the time slider to a particular point.
Some devices are also capable of measuring their orientation. To make this kind of information available to your application, change the State field in the Orientation box to Supported and fill in values for azimuth, pitch, and roll. The Magnetic Orientation checkbox indicates whether the azimuth and pitch measurements are relative to the Earth’s magnetic field or relative to true north and gravity.
To test how your application handles unexpected conditions, try changing the State field in the Location Provider box to Temporarily Unavailable or Out of Service. When your application attempts to retrieve the emulator’s location, an exception is thrown and you can see how your application responds.