Boa tarde a todos, estou tentando usar a javax.microedition.location para usar o gps que tenho no celular, mas está dando alguns erros:
Segue abaixo o código:
package gps;
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.location.Criteria;
import javax.microedition.location.Location;
import javax.microedition.location.LocationProvider;
import javax.microedition.location.QualifiedCoordinates;
import javax.microedition.midlet.MIDlet;
public class Gps extends MIDlet implements CommandListener {
public Gps() {
screen = new Form ("espera....");
screen.append("procurando por localizações...");
screen.addCommand(exit);
screen.setCommandListener(this);
Display.getDisplay(this).setCurrent(screen);
}
protected void startApp() { // método de iniciação da Aplicação
try {
/* Os critérios usados para a seleção do fornecedor da posição são
definidos pelos valores nesta classe.*/
cr = new Criteria();
cr.setHorizontalAccuracy(1000); // exatidão na horizontal
cr.setVerticalAccuracy(1000); // exatidão na vertical
cr.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
gps = LocationProvider.getInstance(cr);
loc = gps.getLocation(60);
/* representa coordenadas porque os valores da latitude-longitude-altura
que são associados com um valor da exatidão. */
qc=loc.getQualifiedCoordinates();
alt = qc.getAltitude();
alt = 949393.90;
lat = qc.getLatitude();
lat = 3627272.90;
lon = qc.getLongitude();
lon = 98484;
screen.append("Altura: " + alt);
screen.append("Latitude: " + lat);
screen.append("Longitude: " + lon);
}
catch (Exception e) {
screen.append("Exception: " + e);
}
}
protected void pauseApp() {
}
protected void destroyApp(boolean bool) {
}
public void commandAction(Command cmd, Displayable disp) {
if (cmd == exit) {
destroyApp(false);
notifyDestroyed();
}
}
// ---- variáveis ----
private Form screen;
private Command exit;
private double lat;
private double lon;
private double alt;
private Criteria cr;
private LocationProvider gps;
private Location loc;
private QualifiedCoordinates qc;
}
O erro:
Running with storage root MediaControlSkin
java.lang.NoClassDefFoundError: javax/microedition/location/Coordinates
at com.sun.midp.midlet.MIDletState.createMIDlet(+14)
at com.sun.midp.midlet.Scheduler.schedule(+52)
at com.sun.midp.main.Main.runLocalClass(+2
at com.sun.midp.main.Main.main(+116)
Execution completed.
695052 bytecodes executed
6 thread switches
745 classes in the system (including system classes)
3632 dynamic objects allocated (100696 bytes)
3 garbage collections (85732 bytes collected)
Desde já agradeço a ajuda!!