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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

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

以上是关于Android 根据城市获取经纬度 适配Android 7.0 Android 8.0的主要内容,如果未能解决你的问题,请参考以下文章

如何根据经纬度来获取城市名

怎样根据GPS获得的经纬度来获取城市名?

微信,根据经纬度获取当前城市

如何在android中使用纬度和经度获取城市名称

关于百度地图根据经纬度获取城市信息的接口

微信小程序自动定位,通过百度地图根据经纬度获取该地点所在城市信息