cómo obtener longitud y latitud en android
Quiero encontrar la longitud y la latitud de mi ubicación actual, pero sigo obtener NULL .
double lat = loc.getLatitude(); //Cause the result is null, so can't know longitude and latitude double lng = loc.getLongitude(); LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); String provider = LocationManager.GPS_PROVIDER; Location location = locationManager.getLastKnownLocation(provider); //result is null!
Este es el código para obtener el estado GPS. Funciona bien:
- GeoFence no activado con ubicación falsa
- CursorAdapter clasificación dinámica
- Centro de aplicaciones de Google Maps V2 Ubicación actual en pantalla
- Permisos de tiempo de ejecución de Android en las versiones de android debajo de M?
- Selección de la API de Google Places sólo determinados tipos de lugares
public void onGpsStatusChanged(int event) { // get the GPS statue LocationManager locationManager = (LocationManager) GpsActivity.this.getSystemService(Context.LOCATION_SERVICE); GpsStatus status = locationManager.getGpsStatus(null); String satelliteInfo = updateGpsStatus(event, status); myTextView.setText(satelliteInfo);//work fine ,searched satellite:16 } }; private String updateGpsStatus(int event, GpsStatus status) { StringBuilder sb2 = new StringBuilder(""); if (status == null) { sb2.append("searched satellite number" +0); } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) { int maxSatellites = status.getMaxSatellites(); Iterator<GpsSatellite> it = status.getSatellites().iterator(); numSatelliteList.clear(); int count = 0; while (it.hasNext() && count <= maxSatellites) { GpsSatellite s = it.next(); numSatelliteList.add(s); count++; } sb2.append("searched satellite number:" + numSatelliteList.size()); } return sb2.toString(); }
- ¿Cuándo debo usar el permiso ACCESS_COARSE_LOCATION?
- Servicio de Android con la ubicación de los servicios de Google Play que hace que la aplicación se abra al azar
- Android: Alerta de proximidad y consumo de batería
- Android - ¿Cómo obtener el tiempo estimado de conducción de un lugar a otro?
- MyLocationOverlay dispatchTap () no se propaga
- Activación del modo de ubicación Alta exactitud o ahorro de la batería, programáticamente, sin necesidad de que el usuario visite Configuración
- Servicios de ubicación de Google contra servicios de ubicación de Android
- Cambiar el modo de ubicación a alta precisión mediante programación Android
getLastKnownLocation()
sólo devuelve una corrección GPS reciente, si está disponible. Es necesario implementar un LocationListener y utilizar LocationManager#requestLocationUpdates()
para buscar una nueva ubicación.
Implementación básica:
public class Example extends Activity implements LocationListener { LocationManager mLocationManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if(location != null) { // Do something with the recent location fix // otherwise wait for the update below } else { mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); } } @Override public void onLocationChanged(Location location) { if (location != null) { Log.v("Location Changed", location.getLatitude() + " and " + location.getLongitude()); } } // etc.. }
- Cordova – Múltiples archivos dex definir (anotación)
- Obtener palabra de EditText en la posición actual del cursor