Android 根據城市獲取經緯度 適配Android 7.0 、Android 8.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() {br/>@Override
public void run() {
getLatAndLng("城市名稱");
}
}.start();

以上代碼可以完成根據城市名稱獲取經緯度以及相關城市的信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章