我是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读取。
答案 0 :(得分:1)
从位置管理器请求位置更新后,您可以指定更新之间的最小距离:
lm.requestLocationUpdates(provider, timeBetweenUpdates, distBetweenUpdates, listener);
但这只是一个提示,系统不需要遵循你的提示。