나는 그런 응용 프로그램을 만들었습니다. (따라서 Office Hours Q &에있는 내 질문에 대해 LocationManager의 전원 측정 방법에 대해 알고 싶습니다.) 그리고 그 동안은 정말 잘 작동하고 있습니다. 처음에는 내장 된 근접 경고를 사용하려고했지만, 당신과 같은 문제에 어려움을 겪었으며 충분히 유연하지 않다고 생각했습니다.
대신에 LocationProvider를 사용하여 5 분마다 NETWORK_PROVIDER를 사용하여 위치를 폴링하고 원하는 위치까지의 거리를 계산하며 근접 거리 내에있는 경우 알림을 발생시키는 서비스를 구축했습니다. Wi-Fi 네트워크가 많은 도시에서는 50m의 정확도를 제공합니다.
다른 앱의 위치 요청을 활용하려면 PASSIVE_PROVIDER도 사용합니다.
내가 원하는 위치 근처에 있고 신고 된 정확도가 너무 가깝기 때문에 지정된 근접 거리 내에 있는지 여부를 결정할 수 없으면 백업으로 단일 GPS 위치 요청을 사용하고 있습니다. 또한 NETWORK_PROVIDER 시간이 초과되면 단일 GPS 위치 요청을 사용합니다. 지하철을 사용하는 동안 GPS 공급자가 배터리를 소모하지 않도록하려면 지수 대기 백 오프 시간 제한이 있습니다.
저는 Wi-Fi 네트워크에 연결되어 있지만 이동하지 않는다고 가정하고 그 시간 동안 위치 제공기를 비활성화합니다.
내가 마지막으로 변경 한 사항은 NETWORK_PROVIDER에 대해 15 분 ("부정확 반복") 타이머를 사용하여 15 분 내에 저장된 위치 중 하나에 연결할 수 없다는 것을 결정할 수있었습니다 (폴링과 함께). 5 분짜리 인터벌은 의미가 없습니다.) 이렇게하면 전력을 절약하는 데 도움이됩니다.
더 많은 전력을 절약하기 위해 더 긴 간격을 사용하는 것에 대해 생각하고 있었지만, 그 시간 내에 내 저장된 위치 중 하나에 도달 할 수 있는지 여부를 결정하는 휴리스틱을 여기에서 발견하는 것은 쉽지 않습니다. 항상 동일한 이동 속도 (도보, 기차 또는 자동차로 여행)를 취하는 것은 아닙니다. 그러나 내 응용 프로그램으로 인한 LocationManager의 전력 소모를 측정 할 수 없기 때문에 매일의 시나리오에서 전력 소모를 평가하는 방법을 알지 못합니다.
기본 제공 API가 모든 로직을 제공하더라도 상관 없지만 실제로는 그렇지 않다고 결론을 내 렸습니다. 그래서 직접 작성했습니다.
희망이 도움이됩니다.
많은 코드를 작성해야합니다. addProximityAlert를 사용하여 호핑을했습니다 :) 모든 정보를 주셔서 감사 드리며 앱의 동작 중 일부를 모방하려고 시도합니다 ... – luciofm
@machtnix는 목표를 달성하기 위해 몇 가지 샘플 코드를 제공 할 수 있습니까? –
@droidhot 이 기사에서 http://android-developers.blogspot.de/2011/06/deep-dive-into-location.html에 일부 코드 스 니펫의 소개로 제공됩니다. – machtnix