La mia applicazione esegue il conteggio degli step in background usando step detector sensor API's introdotto in Android 4.4.X.Incoerenza SensorEvent.timestamp
È essenziale che la mia app conosca l'ora esatta (almeno la precisione di un secondo) che ogni evento del passaggio ha accumulato.
perché mi esibisco sensor batching, il tempo onSensorChanged(SensorEvent event)
stato chiamato non è lo stesso momento in cui l'evento ha avuto luogo passo - devo utilizzare il campo event.timestamp
per ottenere il tempo dell'evento.
la documentazione di questo campo è:
Il tempo in nanosecondo in cui l'evento è accaduto
Il problema:
In alcuni dispositivi (come Moto X 2013) sembra che questo timestamp sia il tempo in nano secondi dall'avvio, mentre in alcuni dispositivi (come Nexus 5) in realtà restituisce il tempo di sistema universale in nano secondi uguale a System.currentTimeMills()/1000
.
ho capito, c'è già un old open issue a tale proposito, ma dal momento che il dosaggio del sensore viene introdotto - diventa importante utilizzare questo campo di conoscere l'ora dell'evento, e non è possibile fare affidamento più sulla System.currentTimeMills()
La mia domanda:
Cosa devo fare per ottenere sempre l'evento in millisecondi di sistema su tutti i dispositivi?
Credo che la tua soluzione sia la migliore risposta che potrei ottenere. grazie –
Wow, questo è incredibile. – Michael