2012-05-27 2 views
3

GPS 위치 업데이트에서 얻은 타임 스탬프가 신기원부터 ms 단위로 표시되는 반면 SensorEvent 업데이트 (예 : 가속도계)의 타임 스탬프는 시작한 이후 ns임을 알게되었습니다.Android : GPS 타임 스탬프와 SensorEvent 타임 스탬프

GPS 타임 스탬프를 SensorEvent 타임 스탬프의 형식으로 변환하고 싶습니다. 누구든지이 작업을 수행하는 좋은 방법을 알고 있습니까?

timestamp = loc.getTime() - startupTime; 

하지만 그 변환 된 타임 스탬프 : 나는 시작 시간을 뺍니다 각 GPS 위치 업데이트

startupTime = System.currentTimeMillis() - SystemClock.uptimeMillis(); 

: 나는 시대 이후 한 번 시스템 시작 시간을 측정 :

나는은 다음 시도 여전히 SensorEvent 타임 스탬프를 따르지 않으면 몇 초의 차이가 있습니다 ...

답변

0

개인적으로, 저는 j GPS 위치 나 센서 이벤트가있을 때마다 System.currentTimeMillis()으로 전화를 걸어 이러한 이벤트를 비교하기위한 적절한 타임 스탬프로 기록하십시오. 상대적으로 말하자면, 수 밀리 초 이내에 정확해야합니다. 즉, 센서 리즘이 밀리 세컨드 내에 GPS 수정 값이 발생하지 않으면,이 방법을 사용하여 올바른 "이전"및 "이후"관계를 항상 얻을 수 있습니다. 또한 몇 밀리 초보다 정확하게 이러한 시간을 갖는 응용 프로그램이 실제로 중요 할 수있는 응용 프로그램을 상상하는 것은 어렵 기 때문에 쉽고 좋은 기술이어야합니다.

loc.getTime()은 GPS 수신기에서 가져온 것으로 System.currentTimeMillis()와 별개입니다. 휴대 전화의 시계가 소위 "GPS 시간"과 동기화되도록 설정하지 않으면 loc.getTime()을 완전히 무시합니다.

2

SystemClock.uptimeMillis()을 사용하지 마십시오. 부팅 후 장치가 절전 모드가 아닌 시간을 측정하므로 SystemClock.uptimeMillis()을 사용하지 마십시오. 대신 SystemClock.elapsedRealtime()을 사용하십시오.

1

현재 압력 센서 이벤트에 대한 응답을보고 있으며 거기에보고 된 타임 스탬프는 신기원 이후 나노초 단위 인 것으로 보입니다. 1,000,000으로 나누면 비슷한 가치가 있습니다. 이것은 내 경험으로 볼 때 센서 값의 나이를 찾아 냈습니다.

SensorEvent 타임 스탬프를 1000000으로 나누면 GPS에서 가져온 Location 개체가 제공하는 getTime() 메서드와 비슷한 값을 얻을 수 있습니다.

참고 :

http://developer.android.com/reference/android/hardware/SensorEvent.html#timestamp (하지만 사용하는 어떤 시계 말하지 않습니다)

http://developer.android.com/reference/java/lang/System.html#currentTimeMillis()

http://developer.android.com/reference/android/location/Location.html#getTime()

관련 문제