0

我是java和android的新手。我设法按照一些教程让我的 gps 在 android 2.3 手机上工作,但我注意到手机的 gps 仅在 40 米范围内准确,这相当于纬度/经度中小数点后第三位的精度。

我的调试日志显示了这个变化(当我坐在我的笔记本电脑上打字时)

LOCATION CHANGED(2137): 43.522701025009155
LOCATION CHANGED(2137): -72.13161981105804
LOCATION CHANGED(2137): 43.522695660591125
LOCATION CHANGED(2137): -72.13161981105804

这是我的代码

  public void onLocationChanged(Location location) {
        if (location != null) {
        Log.d("LOCATION CHANGED", location.getLatitude() + "");
        Log.d("LOCATION CHANGED", location.getLongitude() + "");
        Toast.makeText(MainActivity.this,
            location.getLatitude() + "" + location.getLongitude(),
            Toast.LENGTH_LONG).show();
        }
        else{
           // Log.v(TAG,"LOCATION not found");

        }
       // Log.d("LOCATION is", location.getLatitude() + "");

    }

是否可以将 onLocationChanged() 函数更改为 public void onLocationChanged(Location location, minimumdistance_changed)

其中 minimumdistance_changed 是当前 gps 精度的精度。我也很乐意将 minimumdistance_changed 值设置为 100 米,只要这意味着我只能在 gps 值更改为小数点后第三位时从 onLocationChanged 获得读数。

4

1 回答 1

1

从位置管理器请求位置更新后,您可以指定更新之间的最小距离:

lm.requestLocationUpdates(provider, timeBetweenUpdates, distBetweenUpdates, listener);

但这只是一个提示,系统不需要遵循您的提示。

于 2012-11-08T06:48:40.347 回答