2016-06-17 3 views
0

Android, iOS 및 Windows 10 Mobile에서 실행해야하는 Ionic/cordova를 사용하여 앱을 제작하고 있습니다.모바일 앱 : 오프라인 일 때 올바른 시간을 얻는 방법

목표는 시작 및 중지 이벤트를 등록하는 것입니다.이 이벤트가 등록 될 때 정확한 시간과 위치가 필요합니다.

사용자가 휴대 전화의 시간 설정을 수정하여 잘못된 데이터를 보내는 것이 심각한 우려 사항입니다.

이러한 이벤트가 서버에 즉시 전송되는 한 서버 시간을 사용하여 사용자가 전송 한 내용의 유효성을 검사 할 수 있습니다. 그러나 오프라인 일 때도 작업 할 수 있어야한다는 요구 사항이 있습니다.

우리의 첫 번째 생각은 GPS 시간을 사용하는 것이 었습니다. 코드 바에서 위치 개체는 타임 스탬프를가집니다. 이 반드시 GPS 서버의 시간뿐만 아니라 단지 현지 시간 아니라고 https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-geolocation/

그러나 추가 읽기 후 , herehere. 기기의 가동 시간을 사용하여 해결 방법을 읽었지만 재부팅되는 즉시 작동하지 않습니다. 그러나 이러한 대화의 대부분은 몇 년 전입니다.

이제 우리는 오프라인으로 보낸 이벤트를 '의심스러운'것으로 플래그를 지정하는 것으로 생각합니다.

사용자가 위험을 무릅 쓰지 않고 오프라인 상태에서 시간을 정확하게 판단 할 수있는 다른 방법이 있습니까? 이 SO에 말했듯이

+0

나는 안드로이드에서 그 문제를 가지고 있으며, 결국 나는 여기에 설명 된 시나리오를 사용한다 : http://stackoverflow.com/questions/33449737/how-can-i-get-correct-current-date-and-time- for-android-device-while-device-is-o –

답변

0

는, 네트워크 프로 바이더에서 시간을 얻기에 관하여 무엇을 그것을 자신을 시도,하지만 적이 : 당신이 현재 원하는 경우 getLastKnowLocation에 의해 반환 I want to get time from GSM network

long networkTS = locMan.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getTime(); 

시간이 오래된 될 수있다 시간 사용

locMan.requestSingleUpdate() and pass the network provider 

비록,이 iOS 또는 Windows에서 작동하지 않을 수 있습니다.

+0

안녕하세요 Sriram, 제안을 주셔서 감사합니다. 하지만 아마도 오프라인에서의 요구 사항은 우리가 또한 공급자와 네트워크 연결을 가지고 있지 않다는 것이 나의 질문에 분명하지 않았을 것입니다. 그래서 이것이 잘 작동하는지 확신 할 수 없습니다. – Joris

관련 문제