Java ME Location API(中文)
文章信息
這裡有一個程式碼範例:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.location.*;
public class loctest extends MIDlet implements CommandListener
{
private Display display;
private Form form;
private Command cmdExit,cmdOK;
private StringItem si;
public loctest()
{
display = Display.getDisplay(this);
form = new Form("Location Api test");
cmdExit = new Command("Exit",Command.EXIT,5);
cmdOK = new Command("OK",Command.OK,1);
si = new StringItem("Geo Location", "Click OK");
form.append(si);
form.addCommand(cmdOK);
form.addCommand(cmdExit);
form.setCommandListener(this);
}
public void startApp()
{
display.setCurrent(form);
}
public void pauseApp()
{
}
public void destroyApp(boolean flag)
{
notifyDestroyed();
}
public void commandAction(Command c, Displayable d)
{
if (c == cmdOK){
Retriever ret = new Retriever(this);
ret.start();
} else if (c == cmdExit) {
destroyApp(false);
}
}
public void displayString(String string)
{
si.setText(string);
}
}
class Retriever extends Thread
{
private loctest midlet;
public Retriever(loctest midlet)
{
this.midlet = midlet;
}
public void run()
{
try
{
checkLocation();
}
catch (Exception ex)
{
ex.printStackTrace();
midlet.displayString(ex.toString());
}
}
public void checkLocation() throws Exception
{
String string;
Location l;
LocationProvider lp;
Coordinates c;
Criteria cr= new Criteria();
cr.setHorizontalAccuracy(500);
lp= LocationProvider.getInstance(cr);
l = lp.getLocation(60);
c = l.getQualifiedCoordinates();
if(c != null ) {
// Use coordinate information
double lat = c.getLatitude();
double lon = c.getLongitude();
string = "\nLatitude : " + lat + "\nLongitude : " + lon;
} else {
string ="Location API failed";
}
midlet.displayString(string);
}
}


Ravindrashenoy - not working on e63
Hello, i tried to run it on nokia e63. Its not working on that. It gives a Location request timeout exception. I understand that e63 doesnt have builtin GPS, but the API should be able to get network based location right?
Any pointers?ravindrashenoy 16:13, 8 May 2012 (EEST)