我想让用户当前的城市(不是确切的地址,只有城市)
获取国家/地区,我正在使用此代码:
String locale = context.getResources().getConfiguration().locale.getCountry();
我尝试使用此代码来获取城市:
Geocoder gcd = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gcd.getFromLocation(lat, lng, 1);
if (addresses.size() > 0)
System.out.println(addresses.get(0).getLocality());
然而它为我返回一个空字符串:“”
p.s:我已经在清单文件
中拥有ACCESS_FINE_LOCATION和互联网权限非常感谢
答案 0 :(得分:0)
首先,您获得国家/地区的方式只会为您提供已在设置中定义的国家/地区。因此,在许多情况下这可能是正确的,但对于那些在其设置中设置了其他国家/地区的用户而言,它实际上是正确的。
Geocoder
没有给出任何纬度,经度组合的结果,其中一个原因可能是缺少网络连接,或者您缺少API使用的基本服务。
您还应该确保Geocoder.isPresent()
返回true - 否则,它将不适用于任何位置。 Geocoder's isPresent() method always returns false