¿En qué país se encuentra actualmente el usuario?

He mirado alrededor de un poco en stackoverflow y Grupos de Google y no he encontrado realmente una respuesta para esta pregunta exacta.

Simplemente quiero saber en qué país se encuentra actualmente el usuario de un teléfono Android.

Supongo que TelephonyManager no funciona si el usuario está usando sólo wifi. ¿Es esto cierto?

Hemos intentado pasar la latitud y la longitud actuales del usuario usando android.location.Geocoder, pero es realmente escamosa. Con frecuencia devolverá resultados vacíos. A veces podemos seguir preguntándolo y eventualmente devolveremos resultados, pero es realmente feo. ¿Hay una manera más confiable?

Gracias, Rob Sz

Usted podría intentar la codificación inversa de Geo 🙂

http://code.google.com/apis/maps/documentation/geocoding/ 

Compruebe este enlace. El país es devuelto en JSON.

 http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false 

Sinceramente, no sé si esto funcionará en todos los escenarios, pero creo que esto es algo que puede ayudar.

EDIT: Parece que funciona un poco 🙂

Probado con mi país y parece funcionar perfectamente.

http://maps.googleapis.com/maps/api/geocode/json?latlng=6.822716,79.878159&sensor=false

Conseguirás

 { "status": "ZERO_RESULTS", "results": [ ] } 

Por ejemplo, si el usuario está en medio de un océano por casualidad: P

¿Qué pasa con el uso de un servicio de geolocalización basado en IP? Supongo que debido a diferencias regulatorias, las divisiones de red suelen ser bastante específicas para cada país, excepto en casos como VPN corporativo en las que prácticamente se conecta a la red en otro lugar.

Trate de usar un servicio web, como sugirió Chris. Aquí está una lista de algunos que harán el truco:

http://free-web-services.com/web-services/geo/ip-to-location/

Estoy usando http://www.hostip.info , que es agradable y simple.

  • GetLastKnownLocation () Android, cuando se actualiza la última ubicación conocida?
  • Servicio de Android que no recibe Actualizaciones de ubicación
  • Cómo obtener la ubicación de Google Map después de soltar Pin sobre ella
  • Mapview NullPointerException android
  • Obtener ubicación GPS a través de un servicio en Android
  • Mantenga el mapa centrado, independientemente de dónde pinche el zoom en android
  • Activar servicios de ubicación sin navegar a la página de configuración
  • Android cómo usar location.distanceTo ()
  • Ubicaciones de Cell Tower - Android
  • ¿Existe una manera de obtener la ubicación de "inicio" y "trabajo" del usuario a través de una API de Google?
  • Intervalo de actualización en requestLocationUpdates
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.