Android 根據(jù)城市獲取經(jīng)緯度 適配Android 7.0 、Android 8.0

今天在開(kāi)發(fā)的過(guò)程中遇到了一個(gè)很奇葩的問(wèn)題,就是之前已經(jīng)寫(xiě)好的代碼在Android 7.0 的系統(tǒng)中運(yùn)行是正常的,但是在Android8.0 的系統(tǒng)中運(yùn)行就出現(xiàn)了問(wèn)題。在網(wǎng)上也找了很多資料,經(jīng)過(guò)自己的不斷折騰,終于找到了問(wèn)題。廢話不 多說(shuō)了,直接上代碼:

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();//區(qū)名稱
                     locationLatLng = new LatLng(latitude,longitude);
                    //centerToLocation();
                     }
               }catch (IOException e) {
                   e.printStackTrace();
               }

 }


此方法為根據(jù)城市名稱獲取經(jīng)緯度以及相關(guān)的城市信息。此代碼在Android7.0的系統(tǒng)中可以直接進(jìn)行調(diào)用使用,在Android 8.0的系統(tǒng)中需要在子線程中運(yùn)行,具體的代碼如下:

new Thread() {

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

}.start();

以上代碼可以完成根據(jù)城市名稱獲取經(jīng)緯度以及相關(guān)城市的信息

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容