gpt4 book ai didi

java - Android GPS 需要一段时间才能准确

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:41 25 4
gpt4 key购买 nike

我制作了一个 Android 应用程序,可以通过点击按钮获取经度和纬度位置信息。

起初我得到的是最后已知的位置读数,出于争论的原因,当我第一次加载应用程序/打开 gps 时,这是不准确的。

我想知道的是如何等待它准确,就像在 Google map 中收到“正在等待位置”的 toast 消息时一样。

如果您看到任何可以改进代码的方法,那也会有所帮助。

引用代码:

public class Clue extends Activity {

public static double latitude;
public static double longitude;
Criteria criteria;
LocationManager lm;
LocationListener ll;
Location location;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questions);

criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll = new MyLocationListener();
lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);
}



private boolean weAreThere() {
location = getLocation();
longitude = location.getLongitude();
latitude = location.getLatitude();

return inCorrectPlace(param);
}

private Location getLocation() {
lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);
return lm.getLastKnownLocation(lm.getBestProvider(criteria, true));
}
}

public class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location loc)
{
Clue.longitude = loc.getLongitude();
Clue.latitude = loc.getLatitude();
}
}

感谢阅读,所有回复将不胜感激。

最佳答案

如果 Location.hasAccuracy() 返回 true,您可以调用 Location.getAccuracy() 来检索以米为单位的精度,然后过滤掉您不考虑的精度足够准确。

请注意,您没有使用 LocationManager.GPS_PROVIDER,因此您的修复也可以通过其他方式(如 WiFi)获得。

在获得 GPS 定位(室外)之前,通常预计 GPS 芯片会“变热”* 一分钟左右。

*我所说的热点是指有卫星覆盖。一些芯片组在一段时间后会断开连接(“冷”)以保存电池。当芯片冷时,首次修复时间 (TTFF) 更长。

关于java - Android GPS 需要一段时间才能准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8444538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com