如题,见代码:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location1 = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location location2 = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
location1和location2总是为Null,不知道代码有没有问题,哪位指导一下,多谢了!

解决方案 »

  1.   

    这个问题 有人问过 我也知道原因。
    如下:
    我也研究这个问题 网络定位需要网络定位服务器 就是需要根据你手机提供的信息进行分析后返回你的经纬度。
    我用V880 和 联想A2017都无法定位。V880好歹是有GPS 和Network两种定位服务的。A2017直接连网络定位的服务都没开启。小米顺利定位了。
       但是有一点就是 无论在哪款手机上 百度地图都是可以定位的。
    所以我做了一下猜测:
    (1)网络定位服务(原版google定位) 不但需要你联网 而且需要你有完善的google基础服务包。在这点上。V880和联想A2017都没有 但是小米手机是很全的。
    (2)网络定位服务的提供商除了google还有百度。 原版的应该都是指向google服务器的。而百度是自有的服务器,或者是使用了国内的定位服务器。我自己下载了百度的开发包,然后调用其中的获取经纬度的定位函数。OK 3秒之内迅速网络定位。所以当时我想 为啥不用百度的定位服务作为定位数据源获取经纬度后 然后设置到百度地图或者google地图上呢。
    我觉得这个是非常可行的。当然国外的我没尝试。你可以设置两种定位数据源。哪个获取到,就用哪个的。你所做的尝试 包括返回null 我都是自己亲自写过代码验证过的 属实。 所以我的意见也更加具有针对性。
    这边有个帖子在问:
    http://bbs.csdn.net/topics/390166481
      

  2.   

    我当时研究过google和百度的
    google参照了这个例子:
    http://download.csdn.net/detail/jackquan/4683215还有这个:
    http://download.csdn.net/detail/grape001/3883418百度的定位 你也可以去百度一个 获取直接去百度的官网去找一个sample.
      

  3.   

    不知道楼主用的什么机子测试的,有的手机有gps硬件模块,有的说支持gps,有gps导航,那是agps但是没有gps硬件模块,不能获取到位置信息的,一般中高端的手机都有gps硬件模块,低端的一些像千元以内的好多机器没有那个模块的
      

  4.   

    如果是在模拟器上出现的问题,可能是因为没有设置设备的经纬度可以用命令设置。eclipse中DDMS设置
    必须要打开模拟器,如果没有的窗口可以通过window-->show view 进行设置