java – 如果设置准确性,为什么Android LocationManager在位置更新开始之前有很长的延迟

前端之家收集整理的这篇文章主要介绍了java – 如果设置准确性,为什么Android LocationManager在位置更新开始之前有很长的延迟前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果我将任何ACCURACY设置为条件,则LocationManager需要很长时间才能开始更新位置:

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
provider = locationManager.getBestProvider(criteria,true);
locationManager.requestLocationUpdates(provider,this);

如果我删除ACCURACY标志,它会立即启动但有时不准确.

如何让它立即开始更新并且准确度高?

最佳答案
不幸的是,没办法.

如果您使用ACCURACY_FINE,您将仅使用GPS,但GPS具有“冷启动效果.这意味着如果您的设备长时间不使用GPS,则需要大量时间连接卫星并下载历书和星历.您无法更改此行为.

如果您不使用ACCURACY_FINE,您将同时使用GPS和网络(移动,Wi-Fi)信号.因此,您将从网络中获得快速的第一个位置,因为它们没有“冷启动效果,但此方法的准确性很低.当您的GPS模块准备就绪时,您也将开始接收更新.

原文链接:https://www.f2er.com/android/430178.html

猜你在找的Android相关文章