Dúvidas sobre GPS!

4 respostas
C

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(+28)

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!!

4 Respostas

Stryder

Voce já tentou testar no emuladora da Nokia???
Use o emulador da Serie 60 3rd Edition.
Ou então teste baixando o Beta do wtk da Sum 2.5.

Boa sorte.

P

Voce incluiu a API necessaria no seu projeto (JSR 179)?
Caso nao sugiro que faca isso. Depois que resolver o problema de compilacao voce tera q testar seu codigo em um aparelho real.
Eh bom verificar se sua operadora te permitira utilizar GPS.

Ateh.

liclopes

compara o teu código c/ um desses 2 códigos abaixo que eles estão funcionando

http://www.guj.com.br/posts/list/46203.java
http://www.guj.com.br/posts/list/40865.java

A

Grato.

Criado 28 de outubro de 2006
Ultima resposta 12 de jul. de 2007
Respostas 4
Participantes 5