×
Namespaces

Variants
Actions

Determinando a posição atual do dispositivo em JavaME

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Exemplo de código
Artigo
Tradução:
Por thiagobrunoms
Última alteração feita por hamishwillee em 26 Jun 2013

Contents

Introdução

Este pequeno exemplo de código demonstra como recuperar coordenadas do dispositivo. Ele usa o método LocationProvider.getInstance() para obter uma instância de LocationProvider, o que representa um provedor de serviços, gerando localizações, e o método LocationProvider.getLocation() tem como objetivo recuperar a latitude e a longitude atual.

Código-fonte: FindingPosition.java

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;
 
/**
* Construtor. Inicializa o objeto e os objetos 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\"");
form.append(text);
 
form.addCommand(exitCommand);
form.addCommand(refreshCommand);
form.setCommandListener(this);
 
display = Display.getDisplay(this);
display.setCurrent(form);
 
criteria = new Criteria();
criteria.setHorizontalAccuracy(500);
 
try {
locationProvider = LocationProvider.getInstance(criteria);
} catch (LocationException e) {
//TODO: Handle location exception.
return;
}
}
 
/**
* Método da MIDlet.
* Chamado quando a MIDlet é inicializada
*/

public void startApp() {
// No implementation required.
}
 
/**
* Método da MIDlet.
* Invocado pela MIDlet para colocá-la no estado de Pause
*/

public void pauseApp() {
// No implementation required.
}
 
/**
* From MIDlet.
* Invocado pela MIDlet para colocá-la no estado de terminado
* @param unconditional se a MIDlet pode ser finalizada
*/

public void destroyApp(boolean unconditional) {
// Nenhuma implementação necessária
}
 
/**
* From CommandListener.
* Invocada pelo sistema para indicar que algum comando foi invocado por um displayable particular
* @param cmd O comando que foi invocado
* @param displayable o displayable o qual o comando pertence
*/

public void commandAction(Command c, Displayable d) {
if (c == refreshCommand) {
checkLocation();
} else if (c == exitCommand) {
notifyDestroyed();
}
}
 
/**
* Invocado para ler a localização corrente
*/

private void checkLocation() {
String string;
 
try {
location = locationProvider.getLocation(60);
} catch (Exception e) {
//TODO: Handle exception.
return;
}
 
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";
}
text.setText(string);
}
}

Conclusão

Após pressionar "refresh", o MIDlet irá mostrar as coordenadas correntes.

Materiais Complementares

Você pode obter o código-fonte e a aplicação no arquivo abaixo. O arquivo está disponibilizado para download em: Finding_position_in_Java_ME.zip

This page was last modified on 26 June 2013, at 08:20.
72 page views in the last 30 days.
×