2010-07-25 3 views
3

registerLocationListener() 및 onLocationChanged() 메소드를 통해 GPS 데이터를 성공적으로 가져 왔습니다. 이 문제는 GPS 데이터가 더 이상 없으면 (예 : 실내에서 터널에 들어가는 등) 내 앱의 속도 기록이 정지되는 것입니다. 내 애플 리케이션에 대한 내가 원하는 행동은 사용자가 어떻게 든 새로운 정보가 없기 때문에 (속도를 0으로 설정하고, 속도를 읽는 등 깜박임) 속도 판독 값이 정확하지 않다는 것을 알리는 것이다.안드로이드 GPS에 새 데이터가 있는지 정기적으로 확인하십시오.

어떻게하면됩니까? 정기적으로 GPS 장치가 위성을 감지하는지 여부를 정기적으로 확인하지만 정기적 인 검사를 강제하는 방법을 모르겠습니다.

+0

GpsStatus.Listener를 사용할 수는 있지만 문제가 있습니다. (내 게시물 참조 http://stackoverflow.com/questions/3287389/gpsstatuslistener-no-satellites-used-in-fix-although-status -is-gpsstatus-gps-eve). 최근에 저는 비슷한 작업에 직면했습니다. 그래서 지금 gps_provider와 network_provider를 사용하여 두 개의 requestLocationUpdates를 동시에 실행하고 있습니다. –

답변

3

아마도주기적인 타이머를 시작할 수 있습니다. 타이머가 마지막 GPS 수정이 오래되었다는 것을 알게되면 알림을 표시합니다. 응용 프로그램은 마지막 수정시기를 기억해야합니다.

+0

이것은 GpsStatus.getSatellites() 및 GpsSatellite.usedInFix()를 사용하여 실패한 시도를 한 결과 거의 끝났습니다. LocationListener에서 새 Location 개체를 가져올 때마다 System.currentTimeMillis()로 타임 스탬프를 설정 한 다음 내 GpsStatus.Listener에서 업데이트를받을 때마다 시간을 비교합니다. 그것은 원시적이지만, 지금까지 내가 발견 한 유일한 해결책은 ... – Chris

관련 문제