2010-08-10 3 views
1

내 응용 프로그램에는 사용자의 현재 위치가 필요합니다. 이를 위해 코드를 구현했으며 현재 위치를 가져올 수 있습니다. 이 코드는 가장 좋은 공급자를 먼저 얻고 위치 정보를 가져옵니다. 문제는 GPS_PROVIDER가 사용 중지 된 경우 현재 위치가 NETWORK_PROVIDER에서 반환된다는 것입니다. NETWORK_PROVIDER와 GPS_PROVIDER를 모두 사용하면 가장 좋은 공급자는 GPS_PROVIDER가되며 현재 위치를 가져 오는 데 너무 많은 시간이 걸립니다.Android의 위치 제공 업체는 무엇입니까?

GPS_PROVIDER의 사용 여부에 상관없이 위치 제공 업체를 NETWORK_PROVIDER (으)로 설정하면 문제가 없습니다.

올바른 방법이 무엇인지 알려주세요.

감사

선일은

답변

1

응용 프로그램에 따라, 당신은 단지 네트워크 위치를 사용할 수 있습니다. 이것은 많은 위치 기반 서비스에 대해 충분히 세분화되어 있습니다. 또한 GPS 라디오로 사용자의 배터리를 빨아 먹는 것에 대해 걱정할 필요가 없습니다.

하지만 가능한 한 정확한 위치를 원한다면 두 공급자를 모두 들어 보지 않으시겠습니까? 초기 위치는 getLastKnownLocation() 방법을 사용할 수 있습니다. 그런 다음 NETWORK_PROVIDER 위치를 사용할 수 있습니다. 그런 다음 GPS_PROVIDER에서 수정 사항을 받으면 네트워크 수신기를 무시하거나 제거 할 수 있습니다.

+0

getLastKnownLocation은 위도와 경도를 반환하지 않는 경우가 있습니다. 어떤 경우 null을 반환합니다. 이것이 제가 위치를 가져 오는 공급자 방식을 사용하는 이유입니다. 내 앱의 경우 계속해서 위치 정보를 업데이트 할 필요가 없습니다. 특정 이벤트에서만 가져옵니다. 이를 위해 requestLocationUpdates를 사용하고 리스너를 제거한 위치를 얻습니다. – sunil

+0

아, 그 경우에는 시간 제한을 구현하고 그 시간에 GPS가 다운되지 않으면 네트워크 위치 만 가져야합니다. 이것이 [이 질문에있는 사람들] (http://stackoverflow.com/questions/2919358/android-get-location-from-best-provider-available)이 해결 한 방법입니다. –

0

GPS는 네트워크 제공 업체보다 더 나은 정밀도를 제공합니다.

네트워크 제공 업체는 셀 타워 및 WiFi의 삼각 측량을 사용하여 수행됩니다.

그래서, 즉시 필요하면 "마지막으로 알려진 위치"로 시작한 다음 네트워크로 전환하십시오. 일단 GPS에서 수정 사항을 얻으면 사용을 시작하십시오.

관련, 인 Vinay

관련 문제