Я пытаюсь получить пользователей города по местоположению, но я не могу получить только город!
Я перепробовал почти все, во что верю, но, похоже, ничего не работает, или, на самом деле, единственная вещь, которая работает для получения информации о пользователях по местоположению, это "getAddressLine (0)".
Ниже приведенокод
Geocoder geocoder;
List<Address> addresses;
geocoder = new Geocoder(context, Locale.getDefault());
String city="unknown";
try {
addresses = geocoder.getFromLocation(mLastLocation.getLatitude(), mLastLocation.getLongitude(), 1);
} catch (Exception e) {
Log.d(TAG, "getAddress failed: " + e.getMessage());
e.printStackTrace();
return "Couldn't find city!";
}
if(addresses != null && addresses.size() > 0) {
city = addresses.get(0).getAddressLine(0); // Returns full address!
// city = addresses.get(0).getLocality(); // Returns only an empty string " ".
}
return city;
Итак, мне интересно, как я мог получить только CITY, а не полный адрес.Кроме того, ПОЧЕМУ getLocality () возвращает бесполезную пустую строку?
Мне все еще интересно, почему getLocality () не работает,
, но я создал временное решение, как показано нижекод:
if(addresses != null && addresses.size() > 0) {
String address = addresses.get(0).getAddressLine(0); // StreetAddress -> StreetAddress Number -> Postal Code -> City -> Country
String[] splitAddress = address.split(" "); // Splits address where there is a space, creating array with 5 index. Index 4 should be CITY!
city=splitAddress[4].substring(0,splitAddress[4].length()-1); // Saves city into city-string, and removes a comma from the getAddressLine(0)!
Log.d("SplittedAddress", Arrays.toString(splitAddress));
}