I use reverse geocoding in my app to transform LatLng objects to string addresses. I have to get its results not on device’s default language, but on the language of the country where given location is settled. Is there a way to do this? Here’s my code:
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
List addresses;
try {
addresses = geocoder.getFromLocation(location.latitude, location.longitude, 1);
}
catch (IOException | IndexOutOfBoundsException | NullPointerException ex) {
addresses = null;
}
return addresses;
In your code, Geocoder returns address text in device locale(language).
1 From first element of "addresses" list, get Country Code.
Then returns Country Code (e.g. "MX")
2 Get Country Name.
3 Instantiate Locale and Geocoder again, and request again.
This worked for me, hopefully for you too!