El método isPresent () de Geocoder siempre devuelve false
Había escrito una actividad simple para probar la presencia de Geocoder, llamando a Geocoder.isPresent () siempre devuelve false.
Clase:
- Java.io.IOException: No se puede analizar la respuesta del servidor en getFromLocationName ()
- Diferencia entre el geocoder de ubicaciones de Android y la API de mapas de Google
- Android Geocoder obtener nombre corto del área de administración
- Java.io.IOException: falló grpc
- Obtener el contexto en una clase que implementa Runnable
public class LocationTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); Log.d( "LocationTestActivity", "Geocoder.isPresent : " + Geocoder.isPresent() ); } }
AndroidManifest.xml TAMBIÉN tiene las siguientes entradas antes del elemento "application":
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Entorno: Eclipse Indigo 3.7.1, emulador ICS 4.0 en XP Professional 2002 SP 3
Por favor, ayúdame a entender:
1. ¿Por qué Geocoder.isPresent () está siempre returing false?
2. ¿Qué cambios se deben realizar para que Geocoder.isPresent () devuelva true?
Muchas gracias por adelantado!
- Servicio no disponible al llamar a geoCoder.getFromLocation ()
- Cómo obtener sólo Ciudad, Estado, País de lat, largo en android
- ¿Por qué Android Geocoder está lanzando una excepción "Servicio no disponible"?
- ¿Cómo puedo encontrar la latitud y la longitud de la dirección?
- Servicio GeoCoder no disponible
- Android geocoder ubicación inversa - forma fiable para obtener la ciudad?
- Cómo obtener PlaceID de nombre, o lat, largo en Android?
- Geocodificación inversa - Servicio No disponible - Reiniciar el dispositivo que no resuelve definitivamente - criticar mi geocodificación inversa manual
En realidad, el Geocoder
necesita un servicio que se ejecuta en el fondo por el marco.
De la documentación:
Los métodos de consulta de Geocoder devolverán una lista vacía si no hay servicio de back-end en la plataforma. Utilice el método isPresent () para determinar si existe una implementación de Geocoder.
Así que si nos fijamos en la documentación de isPresent()
, afirma.
Devuelve true si los métodos Geocoder getFromLocation y getFromLocationName están implementados. La falta de conectividad de red puede hacer que estos métodos devuelvan listas nulas o vacías.
Nota: tenga en cuenta que isPresent()
no está disponible en las isPresent()
Pre-Api 9.
¿Está probando este código en Emulador o dispositivo? He enfrentado el mismo problema cuando estaba usando GeoCoder en el emulador 2.2. Pero el código funciona bien en el emulador 2.1. Intente utilizar 2.1
Y el código debe estar funcionando bien en el dispositivo.
Utilice AsyncTask
para obtener coordenadas del servidor mediante geocoder
. Por ejemplo, getFromLocationName()
debe llamarse usando AsyncTask
. UI hilo (actividad principal) no permite las tareas que toman demasiado tiempo, por lo tanto, el método devuelve lista vacía.
- Las pantallas parpadean y cambian de tamaño al iniciar la grabación de vídeo
- Los cuerpos de movimiento rápido pierden la colisión a veces en Box2d, AndEngine