Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Revision as of 17:42, 21 August 2009 by bogdan.galiceanu (Talk | contribs)

Finding position in Java ME

From Wiki
Jump to: navigation, search

Article Metadata
Platform(s): S60 3rd Edition, FP2
Keywords: javax.microedition.location.LocationProvider,javax.microedition.location.Location,javax.microedition.location.Coordinates.getLatitude,javax.microedition.location.Coordinates.getLongitude()
Created: (29 Oct 2008)
Last edited: bogdan.galiceanu (21 Aug 2009)


This code snippet demonstrates how to retrieve device coordinates. It uses LocationProvider.getInstance() to obtain LocationProvider instance, which represents a location-providing module, generating Locations, and LocationProvider.getLocation() method to retrieve current latitude and longitude.

Source file:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.location.Coordinates;
import javax.microedition.location.Criteria;
import javax.microedition.location.Location;
import javax.microedition.location.LocationException;
import javax.microedition.location.LocationProvider;
import javax.microedition.midlet.MIDlet;
public class FindingPosition extends MIDlet implements CommandListener {
private Display display;
private Form form;
private Command exitCommand;
private Command refreshCommand;
private StringItem text;
private Location location;
private LocationProvider locationProvider;
private Coordinates coordinates;
private Criteria criteria;
* Constructor. Constructs the object and initializes displayables.

public FindingPosition() {
form = new Form("Finding location.");
exitCommand = new Command("Exit", Command.EXIT, 2);
refreshCommand = new Command("Refresh", Command.OK, 1);
text = new StringItem("Your position:", "\nPress \"Refresh\"");
display = Display.getDisplay(this);
criteria = new Criteria();
try {
locationProvider = LocationProvider.getInstance(criteria);
} catch (LocationException e) {
//TODO: Handle location exception.
* From MIDlet.
* Called when the MIDlet is started.

public void startApp() {
// No implementation required.
* From MIDlet.
* Called to signal the MIDlet to enter the Paused state.

public void pauseApp() {
// No implementation required.
* From MIDlet.
* Called to signal the MIDlet to terminate.
* @param unconditional whether the MIDlet has to be unconditionally
* terminated

public void destroyApp(boolean unconditional) {
// No implementation required
* From CommandListener.
* Called by the system to indicate that a command has been invoked on a
* particular displayable.
* @param cmd the command that was invoked
* @param displayable the displayable where the command was invoked

public void commandAction(Command c, Displayable d) {
if (c == refreshCommand) {
} else if (c == exitCommand) {
* Called to read current location.

private void checkLocation() {
String string;
try {
location = locationProvider.getLocation(60);
} catch (Exception e) {
//TODO: Handle exception.
coordinates = location.getQualifiedCoordinates();
if (coordinates != null) {
// Use coordinate information
double lat = coordinates.getLatitude();
double lon = coordinates.getLongitude();
string = "\nLatitude : " + lat + "\nLongitude : " + lon;
} else {
string = "Location API failed";


After user press "refresh", MIDlet will show current coordinates.

Supplementary material

You can see source file and executable application in attached zip archive. Archive is available for download at

81 page views in the last 30 days.