onLocationChanged()的距离敏感度

时间:2012-11-08 04:57:08

标签: android gps

我是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读取。

1 个答案:

答案 0 :(得分:1)

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

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

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