Pregunta

Creé un programa que muestra un MAPVIEW, con la ubicación del teléfono y la capacidad de enviar esta ubicación (latitud, longitud) por correo electrónico. (para agregar algunos lugares a una base de datos).

Estoy usando la clase LocationManager y los métodos de getLatitude / getLongitude para obtener la ubicación del teléfono. Mi código se ve así:

double MyLongitude  = 0;
double MyLatitude   = 0;
Location location   = null;

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 10, new ShowLocation()); 

location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

MyLatitude  = location.getLatitude();
MyLongitude = location.getLongitude();

Cuando prueba mi aplicación en el emulador, todo está bien: MapView muestra la ubicación que solucioné (usando el comando Telnet y Geo Fix), y puedo enviar la ubicación por correo electrónico. Tengo el mismo resultado en el teléfono de un amigo; Todo parece funcionar bien.

El problema está en mi teléfono. Puedo mostrar mi ubicación en el mapview (el pequeño círculo azul), pero cuando intento enviar mi ubicación por correo electrónico, la latitud y la longitud se establecieron en 0.

Aquí está el código para mostrar mi ubicación en MAPVIEW:

MyLocationOverlay myLocation = new MyLocationOverlay(this, mapView);
myLocation.enableMyLocation();

No entiendo por qué mi ubicación parece funcionar cuando se muestra, pero no puedo obtener la latitud y la longitud correctas, mientras que parece funcionar en el emulador y el teléfono de mi amigo.

¿Se debe esto a faltar código o algo así? ¿Es esto un problema con mi teléfono? Revisé los permisos y ya tengo los necesarios:

android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_MOCK_LOCATION

También intenté probar con UbocationManager.network_provider en lugar de LocationManager.GPS_Provider, pero obtuve el mismo resultado.

¿Fue útil?

Solución

Puede anular OnLoationChanged (Ubicación L) en su MyLocationOverlay, que se llamará cada vez que la superposición obtenga una nueva ubicación para dibujar su posición, en lugar de solicitar actualizaciones de ubicación y GetLast conocida.

Supongo que GetLastknoNLocation regresa 0, 0 porque aún no ha habido una solución de ubicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top