最近开发一个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

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

更多相关文章

  1. 【ArcGIS for Android】经纬度坐标、地图投影坐标、屏幕坐标互相
  2. android PhoneGap 自定义插件 发现信息 转
  3. 深入学习百度地图Android(安卓)SDK v4.0.0【第五关】瓦片图层
  4. 高德地图-地图中心固定Marker,Marker跳跃、掉落、生长动画
  5. Android(安卓)Tablet (3.0) Out Of Memory
  6. 【Android(安卓)百度地图实战】2.几种地图图层的显示
  7. 百度地图系列01——最简单的调用百度地图
  8. 安卓指定横竖屏失效问题修复
  9. Android之Mina频繁发送心跳包

随机推荐

  1. c程序编译后生成什么文件
  2. 在C语言中,要求参加运算的数必须是整数的
  3. c语言goto语句用法
  4. c语言中#define的用法
  5. c语言逻辑运算符有哪些
  6. c语言源程序经过编译后,生成文件的后缀是
  7. c语言九九乘法表代码如何写
  8. c语言结构化程序设计的三种基本结构是什
  9. c语言如何求n个数的平均值?
  10. c语言字符常量的合法表示形式是什么