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!