原文地址:Android成功使用 GPS 获取当前地理位置(解决
getLastKnownLocation返回null)作者:这个十年
这两天可憋坏我了,一直愁没什么题材可以充实我的博客,正巧最近
遇到一个比较棘手的问题:
使用 GPS 定位无法获取当前的地理位置,即
getLastKnownLocation 方法始终返回 null。
后来一篇博文getLastKnownLocation()返回 null 的解决帮了我大
忙,在此对该博客作者表示感谢,但是有几点需要注意的,我觉得有
必要补充一下,否则看了这篇博文也还是得不到当前的地理位置。
第一:当使用 GPS 定位时,最好不要使用 getLastKnownLocation
方法获得当前位置对象 Location,因为该对象可以在
onLocationChanged 的参数中由系统给予(根据文档,
getLastKnownLocation 有 2 方面功能:1. 获取当前地理位置2.
如果当前位置定位不成功,则可以用此方法获取缓存中的上一次打开
地图时定位的地理位置)。这样就避免了空指针异常。而且更重要的
是 GPS 定位不是一下子就能定位成功的,在 90%以上的情况下,
getLastKnownLocation 返回 null
第二:LocationListener 最好在 Activity 的 onCreate()方
法中进行实例化
实现系统的回调方法:
onLocationChanged(nal Location loc)
onProviderDisabled(nal String s)
onProviderEnabled(nal String s)
onStatusChanged(nal String s, nal int i, nal Bundle
b)
第三:requestLocationUpdates 必须要在 onResume()中进行
注册监听. 且在 onPause()中进行反注册。
第四:测试 GPS 是否定位成功,去一个空旷的地方去,不要有遮挡。
这点非常重要,不然,你永远也不知道自己 GPS 定位是否成功。
评论30