适配安卓面试系统

Android 根据城市获取经纬度 适配Android 7.0

2019-10-17  本文已影响0人  飞指

今天在开发的过程中遇到了一个很奇葩的问题,就是之前已经写好的代码在Android 7.0 的系统中运行是正常的,但是在Android8.0 的系统中运行就出现了问题。在网上也找了很多资料,经过自己的不断折腾,终于找到了问题。废话不 多说了,直接上代码:

public void getLatAndLng(String cityName) {

         Geocoder geocoder = new Geocoder(this,Locale.CHINA);
        try {
              List<Address> addressList = geocoder.getFromLocationName(cityName,5);
              if (addressList.size()> 0) {
                     Address address = addressList.get(0);
                     double latitude = address.getLatitude();//纬度
                     double longitude = address.getLongitude();//精度
                     mSelectProvince = address.getAdminArea();// 省份名称
                     mSelectArea = address.getSubLocality();//区名称
                     locationLatLng = new LatLng(latitude,longitude);
                    //centerToLocation();
                     }
               }catch (IOException e) {
                   e.printStackTrace();
               }

 }


此方法为根据城市名称获取经纬度以及相关的城市信息。此代码在Android7.0的系统中可以直接进行调用使用,在Android 8.0的系统中需要在子线程中运行,具体的代码如下:

new Thread() {

    @Override
    public void run() {
           getLatAndLng("城市名称");
      }

}.start();

以上代码可以完成根据城市名称获取经纬度以及相关城市的信息

上一篇 下一篇

猜你喜欢

热点阅读