模拟黑莓模拟器的纬度和经度
问题描述:
我是黑莓手机的新手。我试着找到纬度和经度。我使用了下面的代码,但它总是返回0.0,纬度和经度都为0.0。可以somone确定我是否拿起了正确的代码。(或者)我做错了一些地方。模拟黑莓模拟器的纬度和经度
即使我也尝试在BB模拟器中设置经纬度。 (模拟 - > GPS位置 - >添加了一个新的Loaction),但仍然得到了经纬度(0.0,0.0)。
请找我试图与代码,
// Locationfinder.java
package com.beacon.bb.app;
import javax.microedition.location.Criteria;
import javax.microedition.location.Location;
import javax.microedition.location.LocationException;
import javax.microedition.location.LocationListener;
import javax.microedition.location.LocationProvider;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;
public class LocationFinder extends MainScreen {
private int _interval = -1;
private double mLatitude, mLongitude;
public LocationFinder() {
super();
// Set criteria for selecting a location provider:
Criteria cr= new Criteria();
cr.setCostAllowed(true);
cr.setPreferredResponseTime(60);
cr.setHorizontalAccuracy(5000);
cr.setVerticalAccuracy(5000);
cr.setAltitudeRequired(true);
cr.isSpeedAndCourseRequired();
cr.isAddressInfoRequired();
add(new RichTextField("Getting Coordinates...."));
try{
LocationProvider lp = LocationProvider.getInstance(cr);
if(lp!=null){
lp.setLocationListener(new LocationListenerImpl(), _interval, 1, 1);
}
add(new RichTextField("Calulating GPS Cordinates :"));
add(new RichTextField("Latitude :" + mLatitude + "," + "Longitude :" + mLongitude));
//System.out.println("Lon" + longitude + " Lat "+ latitude + " course "+course+" speed "+speed+" timestamp "+timestamp);
}
catch(LocationException le)
{
add(new RichTextField("Location exception "+le));
}
}
private class LocationListenerImpl implements LocationListener {
public void locationUpdated(LocationProvider provider, Location location) {
if(location.isValid()) {
double longitude = location.getQualifiedCoordinates().getLongitude();
double latitude = location.getQualifiedCoordinates().getLatitude();
double altitude = location.getQualifiedCoordinates().getAltitude();
float speed = location.getSpeed();
System.out.println("Lon" + longitude + " Lat "+ latitude + " speed "+speed);
mLatitude = latitude;
mLongitude = longitude;
}
}
public void providerStateChanged(LocationProvider provider, int newState) {
// MUST implement this. Should probably do something use ful with it as well.
}
}
}
答
u必须设置_interval为-1这应该是一个以秒为有效时间。我的意思是_interval值表示位置将在多长时间后被监听。
也尝试此链接:
我发现有时候,你必须设置之前,在模拟器上启动应用程式的坐标。试一下,看看它是否允许你使用模拟坐标。 – jprofitt 2011-04-19 16:49:21