getLastKnownLocation() 返回 null [关闭]

Posted

技术标签:

【中文标题】getLastKnownLocation() 返回 null [关闭]【英文标题】:getLastKnownLocation() returns null [closed] 【发布时间】:2015-08-20 07:21:26 【问题描述】:

我在 SO 上阅读了很多关于此主题的问答,但我不得不说它们都不起作用。

我的问题是,即使我启用了 GPS,我也无法获取位置,除非我打开 Google 地图并获取我的位置,然后返回应用程序,这绝对不是用户的选择。

我有以下函数来获取位置。

public Location getCurrentLocation() 
    LocationManager locationManager = (LocationManager) context
            .getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String provider = locationManager.getBestProvider(criteria, true);
    Location myLocation = locationManager.getLastKnownLocation(provider);

    return myLocation;

关于如何解决这个问题,我有什么遗漏吗? 我也试过这个 http://developer.android.com/training/location/retrieve-current.html#last-known 但仍然返回 null。

提前致谢

【问题讨论】:

getlastknownlocation always return null after I re-install the apk file via eclipse的可能重复 我试过了,对我没用 【参考方案1】:

关于如何解决这个问题我有什么遗漏吗?

GPS 无线电会正常断电,因为它们会消耗大量电池。因此,getLastKnownLocation() 可以经常返回null 或陈旧的位置,因为没有任何东西检查位置修复。因此,getLastKnownLocation() 仅在您对该位置有兴趣并且在没有位置时很高兴时才有用。

如果您需要知道位置,则需要使用requestLocationUpdates() 或类似的东西,以使Android 启动GPS 无线电并主动尝试查找位置。

【讨论】:

你能指出一个例子或一个链接吗? @XeniaSis:文档中有 developer.android.com/training/location/… 用于来自 Play Services 的融合位置提供程序。还有github.com/commonsguy/cw-omnibus/tree/master/Location/Periodic 和大量其他示例,可通过搜索引擎找到,用于使用LocationManager 及其requestLocationUpdates() 谢谢,我会通过它们

以上是关于getLastKnownLocation() 返回 null [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

getLastKnownLocation() 返回 null [关闭]

getLastKnownLocation 返回 NULL

Android getlastknownlocation 返回 null

LocationManager.getLastKnownLocation() 返回 null,并且永远不会调用 onLocationChanged

LocationManager 在 Android 中使用 getLastKnownLocation 返回空经度

getLastKnownLocation() 总是返回 null,所有提供者都是 DummyLocationProvider