我在BlackBerry模拟器9800中调用startLocationUpdate()来获取我所在位置的坐标(纬度,经度),即在阿联酋。但是我得到了加拿大的坐标。这是什么意思? GPS无法正常工作吗?我尝试检查模拟器的设置,但我没有看到任何“开启GPS”的选项。请指导如何获取我当前的位置。
private boolean startLocationUpdate()
{
boolean retval = false;
try
{
locationProvider = LocationProvider.getInstance(null);
if ( locationProvider == null )
{
Runnable showGpsUnsupportedDialog = new Runnable()
{
public void run()
{
Dialog.alert("GPS is not supported on this platform, exiting...");
//System.exit( 1 );
}
};
UiApplication.getUiApplication().invokeAndWait( showGpsUnsupportedDialog ); // Ask event-dispatcher thread to display dialog ASAP.
}
else
{
locationProvider.setLocationListener(new LocationListenerImpl(), interval, -1, -1);
retval = true;
}
}
catch (LocationException le)
{
System.err.println("Failed to instantiate the LocationProvider object, exiting...");
System.err.println(le);
System.exit(0);
}
return retval;
}
private class LocationListenerImpl implements LocationListener
{
public void locationUpdated(LocationProvider provider, Location location)
{
if(location.isValid())
{
longitude = location.getQualifiedCoordinates().getLongitude();
latitude = location.getQualifiedCoordinates().getLatitude();
updateLocationScreen(latitude, longitude);
}
}
public void providerStateChanged(LocationProvider provider, int newState)
{
}
}
private void updateLocationScreen(final double latitude, final double longitude)
{
UiApplication.getUiApplication().invokeAndWait(new Runnable()
{
public void run()
{
lat = latitude;
longt = longitude;
RichTextField txt=new RichTextField();
txt.setText("Long=="+longt);
RichTextField txt1=new RichTextField();
txt1.setText("lat=="+lat);
add(txt);
add(txt1);
// persistentLatitude.setContents(Double.toString(latitude));
// persistentLongitude.setContents(Double.toString(longitude));
}
});
}
我想检查GPS和互联网(Wifi,BES,GPRS /边缘等)和任何可用的连接,我想通过可用的服务获取坐标。
答案 0 :(得分:2)
BB模拟器中的默认GPS位置设置为加拿大(据我记得的滑铁卢)中的位置,这就是您获取加拿大坐标的原因。您可以在BB模拟器中从“模拟 - > GPS位置”更改GPS位置。 This video from BB SupportForums可能会对您有所帮助。
以下链接也可能有所帮助: