2011-03-16 10 views
1

안녕 얘들 아 나는 사용자 위치의 위도와 경도를 원합니다. 개발자 사이트 및 스택 오버플로를 시도했지만 움직이는 사용자를 대상으로하는 다음과 같은 몇 가지 예가 있습니다. - onLocationChanged() 위치 업데이트가 필요 없으며 사용자가 잠깐 열어 둡니다. 이 그래서 나는 위치를 사용자가 따라서 전에 위치 정보 응용 프로그램을 사용하지 않은 응용 프로그램이 시작될 때 어떤 경우에 시간을 찾을 필요가 나는 것 또한 LocationManager.getLastKnownLocation()android에서 현재 위치를 얻는 방법

내 코드가에 대한 대안 같은 : -

LocationManager lm = (LocationManager) 
     getSystemService(Context.LOCATION_SERVICE); 
     // connect to the GPS location service 
     Location loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER); 
     Toast.makeText(currentLocation.this, "Latitude -> "+Double.toString(loc.getLatitude()) 
       +" Longitude is -> "+Double.toString(loc.getLongitude()), Toast.LENGTH_LONG).show(); 

잘 작동합니다. 하지만 처음으로 사용할 때 getLastKnownLocation이 null을 반환 할 수 있다는 사실에 두려워합니다.

감사

+1

9 가지 질문을하고 답변을 수락하지 않았습니다. 이전 질문에 대한 정답을 수락하면 더 많은 사용자가 새로운 질문에주의를 기울입니다. –

답변

3
는 위치 업데이트 가입

당신이 첫 번째 업데이트를 받으면 향후 업데이 트에 대한 등록을 취소 할 수 있습니다.

즉, LocationListener을 만들고 LocationManagerrequestLocationUpdates 방법으로 등록하십시오. LocationListeneronLocationChanged 방법에서 LocationManagerremoveUpdates 방법을 this 매개 변수로 사용하십시오.

새로운 위치를 얻는 데 약간의 시간이 걸릴 수 있지만 getLastKnownLocation을 사용하는 경우를 제외하고는 실제로 대안이 없습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 requestLocationUpdates에는 네 개의 매개 변수가 있습니다. 세 번째 매개 변수는 콜백이 발생하는 최소 거리이며 dat은 혼란 스럽습니다. 거기에 null을 두어야합니까? 사용자가 움직이지 않을 수도 있기 때문에 .... – abhishek

+0

minDistance로 0을 전달하면 새 위치가 수신 될 때마다 메소드가 호출됩니다. –

+0

나중에 그 트릭을 했어 감사합니다. – abhishek

관련 문제