Filtrar los resultados de autocompletar de Google Places por país

Estoy trabajando en una aplicación para Android en la que deseo que el usuario busque datos (que mi aplicación proporciona) en una ciudad específica. Para eso tengo un campo de búsqueda en el que el usuario puede escribir un nombre de la ciudad. Utilizo la API de Google Places para recuperar resultados de autocompletado de la siguiente manera:

PendingResult results = Places.GeoDataApi .getAutocompletePredictions(mGoogleApiClient, searchQuery, mBounds, mPlaceFilter); 

En mi caso, mBounds representa los límites de Alemania, porque sólo estoy interesado en ciudades en Alemania y no quiero que ciudades de otros países aparezcan en las predicciones de autocompletado. Ahora, obviamente, Alemania no es un cuadrado perfecto, por lo que mBounds contiene toda Alemania, pero también partes de países vecinos como Suiza. Así que las preguntas son: ¿Cómo puedo eliminar todas las predicciones de autocompletado para lugares que no están en Alemania?

Mi primer pensamiento fue usar un filtro de lugar para obtener predicciones para un país en primer lugar. Según la documentación, esto se puede utilizar para filtrar por regiones (por ejemplo, por países), pero desafortunadamente este filtrado específico no se admite en la API de Google Places para Android (de acuerdo con la documentación).

La colección de tipos (regiones) no se admite en la API de Google Places para Android.

También no parece haber ninguna posibilidad de obtener el país de un lugar de la AutocompletePrediction o el objeto Place . Así que ni siquiera puedo hacer el filtrado yo mismo.

Las únicas soluciones que puedo pensar son las siguientes:

  1. Obtener el lugar de la predicción y utilizar el Geocoder API para recuperar la dirección y de que obtener el país y hacer el filtrado. Sin embargo, eso es una llamada de red adicional (y otra contra mi cuota) que parece totalmente innecesaria ya que me parece que el objeto AutocompletePrediction o al menos los objetos Place deben saber en qué país es un lugar. Después de todo, es parte de los resultados de la descripción / toString de esos objetos. Sin embargo, eso es sólo una cadena como "Munich, Alemania".

  2. Utilice la cadena de descripción mencionada en 1. para determinar el país. Sin embargo, eso parece una solución aún peor que 1, ya que la descripción se localiza dependiendo de la configuración del usuario que podría ser todo. Así que la búsqueda de "Alemania" no haría el trabajo.

Apreciaría una solución que es mejor que lo que he propuesto hasta ahora. No puedo imaginar que no hay una mejor manera de hacer esto. ¿Algunas ideas?

Tuve el mismo problema sin suerte para encontrar una manera de filtrar en el país específico lo que hice como una solución estúpida es filtrar el resultado si contiene el nombre del país en mi caso "Emiratos Árabes Unidos"

 while (iterator.hasNext()) { AutocompletePrediction prediction = iterator.next(); // Get the details of this prediction and copy it into a new PlaceAutocomplete object. if(prediction.getDescription().contains("United Arab Emirates")) resultList.add(new PlaceAutocomplete(prediction.getPlaceId(), prediction.getDescription())); } 
  • No se pudo encontrar com.google.android.gms: play-services: 8.4.0
  • Android google play juegos seleccionar actividad para iniciar cuando se hace clic en la notificación
  • Esta aplicación no se ejecutará a menos que actualice el error de Google Play Services
  • Servicios de juegos de Google Play - Notificación personalizada / Bienvenido de nuevo
  • Caché de dispositivos múltiples de Google IAB V3
  • Informe de errores de Google Play Services
  • Requisito de mencionar la versión de servicios de Google Play en el manifiesto de la aplicación
  • El proveedor de ubicación fusionado no parece utilizar el receptor GPS
  • La aplicación no está configurada correctamente para utilizar los servicios de juego de Google
  • Serializar a una matriz de bytes arrojó una IOException (nunca debería suceder)
  • La aplicación Google Play Top Charts ya no se clasifica en absoluto después de cambiar el título?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.