Obtener código de país de PlaceAutocompleteFragment android (API de Google Places)
En la API de Google Places para Android, utilizo PlaceAutocompleteFragment para mostrar la ciudad / país.
Aquí estoy recibiendo la dirección, el nombre, placeId, etc
Place
objeto Place
contiene sólo estos campos.
@Override public void onPlaceSelected(Place place) { Log.i(TAG, "Place Selected: " + place.getName()); // Format the returned place's details and display them in the TextView. mPlaceDetailsText.setText(formatPlaceDetails(getResources(), place.getName(), place.getId(), place.getAddress(), place.getPhoneNumber()+" "+place.getAttributions()+" :: "+place.getLocale(), place.getWebsiteUri()));
}
- API de Google Places en Android: API_KEY para usuarios individuales
- Gire AutoCompleteTextView en un SearchView en ActionBar en su lugar
- ¿Cómo puedo resolver el `PlaceAutoCompleteFragment`?
- ¿Cómo cambiar el tipo de mapa de simple a satélite de PlacePicker de la API de Google Places?
- Autocompletar texto google lugares api
Pero también quiero código de país. ¿Hay alguna manera de obtener el código de país de lugares API? Si no, ¿hay algún servicio alternativo para obtener el nombre del país y el código al escribir?
- Se rechazó la solicitud de API de Google Places para el autocompletado de Android, incluso con la clave de api correcta
- Javax.net.ssl.SSLPeerUnverifiedException: Ningún certificado de compañero mientras estoy trabajando con google place api en android
- SOLICITUD NEGADA con la API de Google Places KEY para Servidor Web utilizada en una aplicación de Android
- Cómo utilizar el API AutocompleteFilter de Android Places
- Buscar en todos los lugares en el nombre de la ciudad
- Código de estado de autocompletado de los lugares 9001
- Cómo restringir google lugares autocompletar a un país específico?
- La API de Google Places siempre devuelve el error
Con el objeto Place recuperado, puede obtener el objeto Locale asociado:
Locale locale = place.getLocale();
Con este objeto Locale, puede obtener el código de país a través de:
locale.getCountry();
Y el nombre del país con:
locale.getDisplayCountry();
Puedes buscar más métodos disponibles en los documentos: http://developer.android.com/reference/java/util/Locale.html
EDIT:
Si Locale del objeto Place es null, puede usar un Geocoder para obtener información de coordenadas GPS:
LatLng coordinates = place.getLatLng(); // Get the coordinates from your place Geocoder geocoder = new Geocoder(this, Locale.getDefault()); List<Address> addresses = geocoder.getFromLocation( coordinates.latitude, coordinates.longitude, 1); // Only retrieve 1 address Address address = addresses.get(0);
A continuación, puede llamar a estos métodos para obtener las informaciones que desea
address.getCountryCode(); address.getCountryName();
Más métodos en los objetos Address: http://developer.android.com/reference/android/location/Address.html
Tenga en cuenta que los métodos Geocoder deben ser la llamada en un hilo de fondo para no bloquear la interfaz de usuario y que también podría recuperar ninguna respuesta.
- Cambiar un ImageView a blanco y negro NO el dibujable
- La carga de Google Maps es demasiado lenta en la aplicación de Android