2011-01-04 5 views
21

네트워크 제공 업체를 사용하는 앱에 locationListener를 구현했습니다.Android에서 GPS와 네트워크 제공 업체를 동시에 사용하십시오.

GPS를 사용하여 위치를 빠르게 지정하기 때문에이 모든 기능이 잘 작동합니다.

하지만 위치가 정확한 (최대 5-10meters) 내 애플 리케이션에 지점에 왔어.

동시에 네트워크 제공 업체와 함께 GPS 제공 업체를 사용할 수 있는지 궁금한가요? 그리고 GPS 제공 업체가 GPS 위치를 알려 주었을 때 알려 주실 수 있습니까?

그래서 기본적으로 :

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); 
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 

같은 오버라이드 (override) onLocationChanged이 작업() 윌?

그리고 GPS가 위치 정보를 얻었는지 어떻게 알 수 있습니까?

감사합니다.

답변

27

여러 수신자에게 동일한 수신기를 사용할 수 있습니다. locationmanager.getProvidersCriteria 개체와 함께 사용하고 정확도별로 정렬하거나 모두들을 수 있습니다. 실용적인 차이는별로 없습니다.

onLocationChanged 콜백은 위치 객체를 제공하는 getProvider() 메쏘드가있는 Location 객체를 제공합니다. 또한 getAccuracy() 메서드가 있으므로 최신 수정 사항을 정확하게 정렬 할 수도 있습니다.

+0

tnx! – Galip

2

배터리 사용에 신경 쓰지 않는다면 이상적으로 두 공급 업체를 완벽하게 사용할 수 있습니다. Daren이 설명했듯이 getProvider() 및 getAccuracy()를 사용하여 좌표를 필터링 할 수 있습니다.

http://blog.shinetech.com/2011/10/14/a-good-look-at-android-location-data/

+0

이것을 daren의 대답의 덧글로 추가하면 더 명확 해집니다. – etienne

+2

이것은 Daren의 대답에 덧붙여 야했습니다. –

관련 문제