如何获得GPS位置一次,没有自动更新?

时间:2010-11-10 08:29:54

标签: android

我正在使用以下代码来获取GPS位置。 现在我想获得没有自动更新的GPS位置。

例如,我希望只按一次按钮点击最新位置。

所以请告诉我应该使用minTime和Distance的值,同时获取一次且没有间隔和自动更新的位置更新?

我应该在该按钮中调用位置更新而不是onResume吗?

onbutton click() {
  mlocManager = (LocationManager) getSystemService(LOCATION_SERVICE);
  Criteria criteria = new Criteria();
  bestProvider = mlocManager.getBestProvider(criteria, false);
  loc = mlocManager.getLastKnownLocation(bestProvider);

  if(loc != null) {
    MyDeviceLatitude = loc.getLatitude();
    MyDeviceLongitude = loc.getLongitude();
  } else {
    showError();
  }    
}

@Override
public void onLocationChanged(Location argLocation) {
  if (argLocation != null) {
    loc = argLocation;
  }
}

@Override
protected void onPause() {
  super.onPause();
  mlocManager.removeUpdates(this);
}

@Override
protected void onResume() {
  super.onResume();
  Criteria criteria = new Criteria();
  mlocManager = (LocationManager) getSystemService(LOCATION_SERVICE);
  bestProvider = mlocManager.getBestProvider(criteria, false);
  mlocManager.requestLocationUpdates(bestProvider, 20000,1 , this); 
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在这里看看这篇文章: Android: getLastKnownLocation out-of-date - how to force location refresh?

基本上只需要在“onbutton click()”中执行操作即可获得最后一个位置。但是知道这个位置是从最后一次gps活跃起来的!所以它可能已经过时了。