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

    xiaoxiao2021-12-03  16

    转:http://blog.csdn.net/illusion_luna/article/details/7998591

    在用Android开发地图导航的时候不知道大家有没有遇到过使用getLastKnownLocation()函数返回的location却总是显示为null的情况,本人在这几天就遇到过这问题,妹的。。。足足折磨我一天的时间,太痛苦咯~~,好在经过一天的上网找资料,查文档,纵欲把问题给解决咯。。。呼~~;好了 废话不多说。。直接上代码。

    在开始代码之前,先说明,如果你要在模拟器上测试,并且使用MapView的话,你必须申请到google map key,至于申请的办法,网上很多,也写得很详细,在这里我就不多赘述咯。。呵呵,还要在AndroidManifest.xml文件中加入

    还要在application间加上<uses-library android:name="com.google.android.maps"/>:如图

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

    首先创建一个类继承与MapActivity。。这里注意,一定要继承MapActivity。。其他的Activity不行的。。注意咯

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

    首先,实例化LocationManager:

    检测gps功能是否打开

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

    注意:这里的通过getLastKnownLocation()获取到的location有可能为null,别管他 让他去就是咯

    注意:上面的mapView.displayZoomControls(true);一定要加。。要不然的话会出现map不能动态的更新显示经纬度的变化.

    在注册LocationListener后,我们就要重写activity的onPause()和onResume()

    上面的gps监听只是监听gps在已经开启了的状态的改变,也就是说gps已经开启了,但它是出于开启状态中的可见呢?还是开启状态中的暂停。。。等等

    而我们也要给LocationManager注册一个gps监听,用于监听gps是否已经顺利的启动,还是说依然没有启动

    注意下面这部分你可以将它封装成一个内部类形式,当然,你也可以将他写到onCreate函数内~~

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

    接下来这部分可以不再onCreate内写,将它封装成一个函数调用,获取最佳的提供者。。也就是我自说的筛选器。。呵呵呵

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

    测试。。。。

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

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

    在改变经纬度

    地图将会改变

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

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

    请多多指教 

    转载请注明原文地址: https://ju.6miu.com/read-680002.html

    最新回复(0)