Tiempo del GPS en Android
Estoy buscando una forma de mostrar el tiempo de GPS en mi aplicación. ¿Cuál es la manera más fácil de hacer esto?
(Tiene que ser GPS-tiempo debido a ligeras diferencias de tiempo entre el tiempo de gps y el tiempo del sistema interno)
- Aplicación de tiempo de uso de seguimiento de Android android en Android
- ¿Cambia el tiempo de uso de Android a Celsius?
- Tiempo inactivo de actividad para HistoryRecord?
- Haga que el temporizador de cuenta regresiva pase de 10sec a 1sec
- Java cronometrar, System.nanoTime () batear que System.currentTimeMillis () pero persiste sobre sueño?
Gracias
- Tiempo desde el primer arranque
- Tiempo de sincronización para la grabación de datos en varios dispositivos Android
- SimpleDateFormat.getTimeInstance ignora el formato de 24 horas
- Detener temporizador sin destruir y volver a crear - Android
- Retardo de tiempo en Android
- Convertir cadena al formato de sello de tiempo de MySQL en php
- Android: obtenga tiempo hasta que Runnable se ejecute a través de Handler
- Hora mostrada en Logcat
Siempre que reciba una corrección del GPS, se llama al método onLocationChanged
. El parámetro de este método es una instancia de Location
. Uno de los métodos de este parámetro es getTime
que le dará lo que está buscando. Eso es si tengo bien lo que estás buscando. Leer más aquí
Obtener el tiempo GPS puede ser bastante confuso! Para extender las discusiones en la respuesta aceptada, getTime () en onLocationChanged () callback da respuestas diferentes dependiendo de cómo se recupera la información de la ubicación (no necesariamente GPS), (basada en las pruebas de Nexus 5):
(A) Si utiliza Google FusedLocationProviderApi (API de servicios de ubicación de Google), entonces getProvider () devolverá "fusionado" y getTime () devolverá el tiempo de los dispositivos (System.currentTimeMillis ()).
(B) Si utiliza Android LocationManager (API de ubicación de Android), dependiendo de la configuración de "ubicación" del teléfono y de las configuraciones requestLocationUpdates (LocationManager.NETWORK_PROVIDER y / o LocationManager.GPS_PROVIDER), getProvider () devolverá:
- Cualquier "red", en cuyo caso getTime () devolverá el tiempo de dispositivos (System.currentTimeMillis ()).
- O bien, 'gps', en cuyo caso getTime devolverá el tiempo del GPS (satélite).
Esencialmente: 'fusionado' usa GPS y Wi-Fi / Red, 'red' usa Wi-Fi / Red, 'gps' usa GPS.
Por lo tanto, para obtener el tiempo GPS, utilice el LocationManager de Android con requestLocationUpdates establecido en LocationManager.GPS_PROVIDER. (Observe que en este caso la parte de los milisegundos getTime () es siempre 000)
Aquí hay un ejemplo usando Android LocationManager (Android Location API):
public void InitialiseLocationListener(android.content.Context context) { android.location.LocationManager locationManager = (android.location.LocationManager) context.getSystemService(android.content.Context.LOCATION_SERVICE); android.location.LocationListener locationListener = new android.location.LocationListener() { public void onLocationChanged(android.location.Location location) { String time = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS").format(location.getTime()); if( location.getProvider().equals(android.location.LocationManager.GPS_PROVIDER)) android.util.Log.d("Location", "Time GPS: " + time); // This is what we want! else android.util.Log.d("Location", "Time Device (" + location.getProvider() + "): " + time); } public void onStatusChanged(String provider, int status, android.os.Bundle extras) { } public void onProviderEnabled(String provider) { } public void onProviderDisabled(String provider) { } }; if (android.support.v4.content.ContextCompat.checkSelfPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION) != android.content.pm.PackageManager.PERMISSION_GRANTED) { android.util.Log.d("Location", "Incorrect 'uses-permission', requires 'ACCESS_FINE_LOCATION'"); return; } locationManager.requestLocationUpdates(android.location.LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener); locationManager.requestLocationUpdates(android.location.LocationManager.GPS_PROVIDER, 1000, 0, locationListener); // Note: To Stop listening use: locationManager.removeUpdates(locationListener) }
- Android – ¿Cómo tomar un EditText (números) y luego convertirlo a un número entero para usarlo para las matemáticas?
- Agregar el botón a PreferenceScreen