0

我正在尝试获取用户当前的城市(不是确切的地址,只有城市)

为了得到这个国家,我正在使用这个代码:

  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());

但是它为我返回一个空字符串:“”

ps:我已经在清单文件中有一个 ACCESS_FINE_LOCATION 和互联网权限

多谢

4

1 回答 1

0

首先,您获取国家/地区的方式只是为您提供在设置中定义的国家/地区。所以这在很多情况下可能是正确的,但对于在他们的设置中设置了另一个国家的用户来说,他们现在实际上是这样的。

Geocoder没有给出任何纬度、经度组合的结果,原因之一可能是缺少网络连接,或者您缺少 API 使用的基本服务。

您还应该确保Geocoder.isPresent()返回 true - 如果不是,它将不适用于任何位置。Geocoder 的 isPresent() 方法总是返回 false

于 2013-03-22T23:03:55.757 回答