带有被动提供程序的LocationManager getLastKnownLocation

时间:2018-03-15 09:22:41

标签: java android android-source

我有遗留应用,在某项活动中,需要用户位置。这个位置不需要精确,所以我的标准是

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
String provider = mLocationManager.getBestProvider(criteria, true);

一般会回复network提供商。在某些时候,我使用此提供程序调用{​​{1}}。

一切正常。当我切换到设置并关闭位置并切换回应用时,我的getLastKnownLocation(provider)变为provider

所以我只需要最后一个位置,因为精度并不重要,我继续并致电"passive"

在API 19上 - > getLastKnownLocation(provider)返回getLastKnownLocation("passive")个对象。此对象的提供商为Location,纬度/长值也会确认这是最近获得的位置。

在API 21+上 - > network返回null。

我是100%正面我在切换和关闭位置服务之前有一个位置。我已经浏览了getLastKnownLocation("passive")的文档/差异,但无法找到有关此内容的任何信息。

是否有任何关于为什么它会在21岁以上表现出来的信息/文档?

0 个答案:

没有答案