启用GPS后,需要一段时间才能准备好GPS.因此,使用此代码可能会获得过期的位置:
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
我无法使用过时的位置.如何获得所需的位置?
这是一个类似的问题:
Android: getLastKnownLocation out-of-date – how to force location refresh?
通过它,我可以使用LocationListener来获取更新的位置,该位置应该不会过时.这是正确的.但是我该如何处理这种情况:
我已经启用了GPS,然后启动我的应用程序.如果我呆在一个地方不动,那么onLocationChanged()将不会被调用.所以我不能使用这种方法来判断getLastKnownLocation()的返回值是否不是过期的?
有任何想法吗?
解决方法:
How to get location that isn’t out of date?
您以1000毫秒的minTime调用requestLocationUpdates(),对于onLocationChanged()中的每个Location,您都调用getAccuracy().如果您可以接受准确性,请调用removeUpdates().
So I can’t use this method to judge whether the return value of getLastKnownLocation() is not out-of-date
我认为它返回的Location对象将包含一个time stamp.您可以为now和Location的getTime()之间的时间差设置公差
标签:android,gps,geolocation 来源: https://codeday.me/bug/20191013/1911019.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。