2010-01-13 3 views
10

내 응용 프로그램의 시작에서 현재 위치를 검색 할 수 Android : getLastKnownLocation이 오래되었습니다. 위치를 새로 고치려면 어떻게해야하나요?

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

을 사용하고 있습니다.

안드로이드 설명서에 따르면 GPS를 마지막으로 사용했을 때 위치를 반환하기 때문에이 위치는 "구식"일 수 있습니다.

어떻게 적극적으로가 GPS에서 현재 위치를 요청할 수 있습니까? 나는 LocationListener을 사용하는 것에 대해 생각했지만, 단지 (내 앱의 시작 부분에서) 한 번만 위치가 필요하기 때문에 약간 과잉이라고 할 수 있습니다.

아이디어가 있으십니까?

답변

10

처음 직감이 정확합니다. 업데이트를 요청하려면 LocationListener을 사용해야합니다. 단일 위치 만 있으면 위치 값을 반환 한 후 LocationListener의 등록을 취소 할 수 있습니다.

실제로는 조금 더 오랫동안 듣는 것이 좋습니다. 위치 기반 서비스 (특히 GPS)는 처음 수정을 할 때 조금만 돌아 다니는 경향이 있습니다. 가장 좋은 방법은 설정된 시간 동안 또는 설정된 수의 업데이트를 청취하거나 일정 수준의 정확도가 달성 될 때까지입니다 (위치 수신기는 반환 된 위치의 정확도를 반환합니다).

+0

Muchas gracias Reto :-) – znq

+0

이미 GPS를 사용하도록 설정 한 다음 내 앱을 시작한다고 가정합니다. 한 곳에서 지내면 onLocationChanged()가 호출되지 않습니다. 이 경우 getLastKnownLocation()의 반환 값이 오래된 것이 아닌지 어떻게 확인할 수 있습니까? – flypen

+0

시간에 따라 업데이트를 지정할 수도 있고 requestLocationUpdates를 살펴볼 수도 있습니다. –

관련 문제