在android开发中调用Geocoder方法返回空值的问题
2016-03-21 15:55
465 查看
问题代码如下
//获取对应位置的经纬度并且定位城市 private void updateWithNewLocation(Location location) { double lat = 0.0,lng = 0.0; if (location!=null) { lat = location.getLatitude(); lng = location.getLongitude(); Log.i("TAG", "经度是"+lat+"纬度是"+lng); System.out.println("程序能走到这一步4"); }else { cityName = "无法获取城市信息"; } System.out.println("程序能走到这一步5"); //通过经纬度获取地址 //通过经纬度获取地址 List<Address> list = null; Geocoder geocoder = new Geocoder(getActivity()); try { list = geocoder.getFromLocation(lat, lng, 2); System.out.println("list="+list); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } if (list!=null&&list.size()>0) { for (int i = 0; i < list.size(); i++) { Address address = list.get(i); cityName = address.getLocality();//获取城市 } } //发送空消息 handler.sendEmptyMessage(1); }
logcat中lat和lng的值有正常输出,但是执行完list = geocoder.getFromLocation(lat, lng, 2);之后list依然为空,显示在模拟器上面updateWithNewLocation()这个方法根本没有执行,后来用真机测试这个方法有执行,但是geocoder方法总是返回空值。最后知道是Geocoder()这个方法本身的问题,如果手机没有google service框架总是会返回空值,参看
Pro Android学习笔记(一一五):Location(1):Geocoder
相关文章推荐
- The following classes could not be instantiated: - android.support.v7.widget.Toolbar 解决办法
- Android实现支持进度条显示的短信备份工具类
- Android View体系(七)从源码解析View的measure流程
- Android studio中如何修改运行环境中最低版本和目标版本
- Google cardBoard Android的两个jar包,以及Demo
- android-多个listview菜单数据点击item项保留选中状态问题
- android光滑绘图可变宽度笔
- Android开发教程
- 不会写代码,如何从零学习Android开发?
- android Timer浅析
- android边框线
- android 补间动画 属性动画 总结
- Android手机号码归属地的查询
- android把图片 视频 保存到相册
- Google cardBoard Android API (十七):Enums--CardboardDeviceParams.VerticalAlignmentType
- Android APK反编译就这么简单 详解(附图)
- Google cardBoard Android API (十六):两个接口中的CardboardView.StereoRenderer
- 从底层看android5.0系统的启动过程
- Google cardBoard Android API (十五):两个接口中的CardboardView.Renderer
- android系统各个输出log对应层次文件