android网络 gps定位失败,android 网络定位失败 location为null的真正原因

最近开发一个android应用,需要用到定位功能,经过网上查资料发现gps定位速度太慢,遂决定用网络定位,结果在本人的三星手机上调试发现

locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);

Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

if(location != null){

longitude = location.getLongitude();

}

}

执行后location永远为null,哪怕用网上流传的办法用while循环一直获取也无法得到非空的值。

其真正原因是三星等国内的手机厂商对android系统进行了改动,将谷歌的服务包删除,上述结果就是讲网络定位服务包缺少的结果,最明显的就是谷歌地图无法定位,因为谷歌地图用的也是这套api,而其他百度、高德等实用自己的地图api包,所以依然可以使用,而使用谷歌原版android就没有这个问题,在虚拟机中测试也可以发现运行正常。解决方法很简单,既然缺少服务包,那么重新加上即可,不用刷机,只是安装过程与一般的应用安装方法不同,一定记住先按框架再安装服务

安装方法  http://bbs.lephone.cc/thread-365363-1-1.html

服务包下载  http://bbs.gfan.com/android-4071962-1-1.html

虽然讲的不是很详细,一般用户可能不是很懂,但是我相信作为开发人员一定可以看懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值