Advertisement

如何获取gps卫星导航定位,解决getLastKnownLocation返回null

阅读量:

当使用Android开发地图导航应用时,默认情况下可能会出现类似的问题: getLastKnownLocation()函数返回的位置信息却始终无法获得有效数据。我在过去几天中亲身体会到这个问题带来的困扰——感到十分沮丧。幸运的是,在持续学习和研究文档资料后,终于找到了解决方案,至此问题得以圆满解决!接下来就是技术实现的具体细节了...

在编写代码之前,请提前说明以下几点:如果您希望在模拟器上进行测试,并且计划使用Google Maps View,则必须获取Google Maps API的访问密钥。关于如何获取访问密钥的方法,在网络上有许多详细资源可供参考。不过由于篇幅和时间限制,在此就不再赘述了。此外,请确保将以下内容加入到AndroidManifest.xml配置文件中以完成必要的设置。

还需要在各个应用之间配置以参考图1所示。

好了。。。接下来就是activity的代码咯。。

第一步生成一个新类,并使其直接从MapActivity继承属性和行为。需要注意的是,在这个过程中,请确保所生成的新类必须直接从MapActivity继承属性和行为,并且其他类型的应用程序无法实现此功能吗?请确认一下!

接下来就是要实例化各种属性:

首先,实例化LocationManager:

检测gps功能是否打开

获取到最好的筛选器^ ^我自叫他筛选器的。。

特别提示:在获取位置信息时,请注意该函数返回的位置值可能为null的情况,请继续执行任务即可

注意:在MapView中调用displayZoomControls(true);必须添加。。否则的话将无法实现地图根据经纬度变化而动态更新。

完成对LocationListener的注册后, 我们必须对activity的pause和resume方法进行重新编写

虽然这种GPS监控仅关注GPS处于开启状态时的状态变化(而不是持续不断地进行),也就是说 GPS 已经处于开启状态。然而它究竟是处于开启状态下是否可见的问题?或者可能是处于开启状态下被暂停的情况……等等

我们还需为LocationManager配置一个GPS监听器,以监控GPS设备是否已正常运行或尚未完成初始化。

注意下面这部分你可以将其封装为一个内部类形式,此外还可以将其放置在onCreate函数内部

依旧在onCreate内的代码,设置map的显示模式和放大缩小的按钮

随后这部分代码不需要在onCreate方法中直接编写, 而是可以将其提取为一个辅助函数模块, 专门负责查找最佳来源. 这样做不仅提升了代码可维护性, 同时也可以称为我的筛选系统.

好了。。代码都写完了。。接下来就是运行看结果了。。我们这些代码是2.3版本的

测试。。。。

在ddms上输入一个经纬度,点击send,出现如下的地图

不知道这是哪里~~呵呵呵呵

在改变经纬度

地图将会改变

看。。。。地图发生了变化^ ^。。。因为要上课咯 所以先闪咯~~~

由于我是第一次写博客,所以哪位大神飘过过请勿见笑。。。。。。

请多多指教

全部评论 (0)

还没有任何评论哟~