내 응용 프로그램에서 사용자의 현재 위치를 결정하고 싶습니다. 그러나 이와 관련하여 몇 가지 질문이 있습니다.
내 응용 프로그램에서 사용자의 현재 위치를 결정하고 싶습니다. 그러나 이와 관련하여 몇 가지 질문이 있습니다.
답변:
안드로이드에는 3 개의 위치 제공자가 있습니다.
그들은:
gps –> (GPS, AGPS) : GPS 위치 제공자의 이름입니다. 이 공급자는 위성을 사용하여 위치를 결정합니다. 조건에 따라이 공급자는 위치 수정을 반환하는 데 시간이 걸릴 수 있습니다. android.permission.ACCESS_FINE_LOCATION 권한이 필요합니다.
네트워크 –> (AGPS, CellID, WiFi MACID) : 네트워크 위치 공급자의 이름입니다. 이 공급자는 셀 타워 및 WiFi 액세스 포인트의 가용성에 따라 위치를 결정합니다. 결과는 네트워크 조회를 통해 검색됩니다. android.permission.ACCESS_COARSE_LOCATION 또는 android.permission.ACCESS_FINE_LOCATION 권한 중 하나가 필요합니다.
수동 –> (CellID, WiFi MACID) : 실제로 위치 수정을 시작하지 않고 위치를 수신하기위한 특수 위치 공급자. 이 공급자는 다른 응용 프로그램이나 서비스가 실제로 위치를 직접 요청하지 않고 요청할 때 위치 업데이트를 수동으로받는 데 사용할 수 있습니다. 이 제공자는 다른 제공자가 생성 한 위치를 반환합니다. GPS가 활성화되어 있지 않으면이 공급자는 대략적인 수정 만 반환 할 수 있지만 android.permission.ACCESS_FINE_LOCATION 권한이 필요합니다. 이것은 안드로이드가 이러한 위치 제공자라고 부르는 것이지만, 이러한 것들을 작동시키는 기본 기술은 특정 하드웨어 및 전화 제공 기능 (네트워크 서비스)에 매핑됩니다.
가장 좋은 방법은 "네트워크"또는 "수동"공급자를 먼저 사용한 다음 "gps"로 대체하고 작업에 따라 공급자간에 전환하는 것입니다. 여기에는 모든 경우가 포함되며 최저 공통 분모 서비스 (최악의 경우)와 훌륭한 서비스 (최상의 경우)가 제공됩니다.
기사 참조 : Android 위치 제공 업체-GPS, 네트워크, 패시브 작성자 Nazmul Idris
코드 참조 : https://stackoverflow.com/a/3145655/28557
-----------------------최신 정보-----------------------
이제 Android에 Fused 위치 제공 업체가 있습니다.
Fused Location Provider는 기본 위치 기술을 지능적으로 관리하고 필요에 따라 최상의 위치를 제공합니다. 앱이 정확성을 높이고 전력 소비를 줄이면서 사용자의 현재 위치를 얻는 방법을 단순화합니다.
융합 된 위치 제공자는 위치를 가져 오는 세 가지 방법을 제공합니다.
참고 문헌 :
공식 사이트 : http://developer.android.com/google/play-services/location.html
융합 된 위치 제공자 예 : GIT : https://github.com/kpbird/fused-location-provider-example
http://blog.lemberg.co.uk/fused-location-provider
-------------------------------------------------- ------
GPS는 일반적으로 네트워크보다 정확하지만 GPS를 사용할 수없는 경우가 있으므로 둘 사이를 전환해야 할 수도 있습니다.
좋은 출발은 android dev 사이트를 보는 것입니다. 여기에는 사용자 위치 결정 전용 섹션이 있으며 필요한 모든 코드 샘플이 있습니다.
http://developer.android.com/guide/topics/location/obtaining-user-location.html
여기에 언급 된 훌륭한 답변이 있습니다. 또 다른 접근 방식은 Atooma, tranql 및 Neura와 같이 온라인으로 제공되는 무료 SDK를 사용하여 Android 응용 프로그램과 통합 할 수 있습니다 (통합하는 데 20 분 미만 소요). 사용자의 정확한 위치를 제공함과 동시에 사용자의 활동에 대한 통찰력을 제공 할 수 있습니다. 또한 일부는 배터리의 1 % 미만을 소비합니다.