我正在使用使用gps功能的应用程序(在Eclipse上使用AVD)。当我将坐标与DDMS放在一起时,此应用程序正常工作,但如果我插入一个非常接近前一点(20-30米)的点,则不会调用onLocationChanged(Location loc)
事件(但是应用程序没有&#39} ; t崩溃。如果我插入一个不那么接近的新点,则正确调用偶数)。这是模拟器的问题吗?或者这是由requestLocationUpdates(...)
方法引起的问题?我的代码是这样的:
public class myActivity extends Activity
{
private TextView mytext;
private LocationManager locmgr = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GPSListener gpsListener=newGPSListener();
mytext = (TextView) findViewById(R.id.mytext);
//grab the location manager service
locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locmgr.requestLocationUpdates(locmgr.GPS_PROVIDER, 10, 10, gpsListener);
mytext.setText("waiting for location");
}
//Start a location listener
private class GPSListener implements LocationListener
{
public void onLocationChanged(Location loc)
{
//sets and displays the lat/long when a location is provided
String latlong = "Lat: " + loc.getLatitude() + " Long: " + loc.getLongitude();
mytext.setText(latlong);
}
public void onProviderDisabled(String provider)
{
}
public void onProviderEnabled(String provider)
{
}
public void onStatusChanged(String provider, int status,
Bundle extras)
{
}
}
}
答案 0 :(得分:1)
您可以在调用requestLocationUpdates方法时更改最小距离。
locmgr.requestLocationUpdates(locmgr.GPS_PROVIDER, 10, 2, gpsListener);
Here是explenation。
答案 1 :(得分:0)
我认为这是由于GPS精度导致的正确行为。换句话说,从当前点起20-30米是从GPS的角度来看的相同位置