私のアプリケーションは、Android 4.4.X で導入されたステップ検出センサー APIを使用して、バックグラウンドでステップ カウントを実行します。
各ステップ イベントが発生した正確な時間 (少なくとも 1 秒の精度) を知ることは、私のアプリにとって不可欠です。
センサーのバッチ処理を実行するため、呼び出された時間onSensorChanged(SensorEvent event)
は、ステップ イベントが発生した時間と同じではありませんevent.timestamp
。フィールドを使用してイベント時間を取得する必要があります。
このフィールドに関するドキュメントは次のとおりです。
イベントが発生したナノ秒単位の時間
問題:
一部のデバイス (Moto X 2013 など) では、このタイムスタンプは起動後のナノ秒単位の時間のように見えますが、一部のデバイス (Nexus 5 など) では、実際には と同じナノ秒単位のユニバーサル システム時間を返しますSystem.currentTimeMills() / 1000
。
それについてはすでに未解決の問題があることは承知していますが、センサーのバッチ処理が導入されてから、このフィールドを使用してイベント時間を知ることが重要になり、System.currentTimeMills()
私の質問:
すべてのデバイスで常にシステム ミリ秒単位のイベント時間を取得するにはどうすればよいですか?