我是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 获得读数。