2012-09-09 2 views
2

위치의 특정 반경 내에있을 때 작업을 수행해야하는 앱을 만듭니다. 하지만 배터리를 소모하기 때문에 계속 위치를 폴링하고 싶지는 않습니다.위치 기반 동작 수행

사용자가 위치를 쿼리하는 빈도를 지정하는 옵션을 추가하는 것에 대해 생각했습니다. 그러나 사용자가 너무 오래 설정하면 내 앱이 위치 근처에있을 때 작업 수행을 놓칠 수 있습니다.

Pay With Square에서 자동 탭 기능이있는 하나의 Google IO 세션에서 위치를 지속적으로 폴링하는지, 위치를 쿼리하는 것과 지연없이 효율적으로 세 번째 옵션 사이를 지연 시킬지는 확실하지 않습니다. 배터리가 소모되었습니다.

나는이 문제에 접근하는 방법에 대한 제안을하고 싶습니다. 미리 감사드립니다.

+0

이 답변은 당신이 찾고있는 것일 수도 있습니다 : http://stackoverflow.com/a/4287279/ 1127492 – Stefan

+0

지금 내 질문에 하나 이상의 답변이 전체 답변을 구성하는 경우 하나 이상의 답변을 수락 할 수 있습니까? – raistdejesus

답변

1

사실 내 질문에 : "내 배터리를 절약하면서 어떻게 정확한 위치 측정을 할 수 있습니까?"

는 배터리를 절약하고 좋은 위치를 가지고 주로 두 가지 방법이 있습니다 :

  1. 가 여론 조사 행동
사이에 큰 간격을 설정 GPS (즉, 실제 배터리 돼지입니다)를 사용하지 마십시오
  • wi-fi 및 전화 셀 데이터 만 사용하여 꽤 좋은 위치 (반경 40 ~ 150m, 대부분의 경우 GPS보다 낫습니다)를 얻을 수 있습니다. 코드에서 공급자 선택 기준으로 "ACCURACY_COARSE", "ACCURACY_LOW"및/또는 "POWER_LOW"를 선택하기 만하면됩니다.

    구글 개발자의 웹 사이트에 다음 링크를 참조하십시오 :

  • 특히

    • Location Strategies
    • Location and Maps
    • LocationManager이 두 :

      당신은/사용자의 측정 속도에 기초하여 배터리 절약 폴링 간격을 설정 선택할 수 있습니다. 사용자가 걷는 경우 (시속 5km 미만) 경고를 내지 못할 위험없이 30-60 초 간격을 사용할 수 있습니다. 사용자가 자동차로 여행하는 경우 (50 km/시간 이상) 1 - 10 초 간격을 설정해야합니다. 위치 공간의 정확도가 일반적으로 매우 (100m 정도) 매우 나쁘다고 생각하면 시간 인 (속도) 정확도로 포인트를 "캐스팅"하려고하면 거의 이해가되지 않습니다.

      이에 대한 Google 문서를 확인하십시오.

      어쨌든 Google은 자신의 코드를 사용하여 배터리를 저장하지 않으려 고 명시하고 이에 대한 getProviders 기준에 의존합니다.

    +0

    감사. 나는이 플러스 다른 대답이 나에게 필요한 충분한 정보를 줄 것이라고 생각한다. – raistdejesus

    1

    잘 이해하면 기기 위치가 사전 정의 된 반경 인 경우 일부 이벤트가 발생하기를 원합니다. 그게 문제라면 자동 메커니즘 인 Proximity Alerts라는 것이 있습니다. 그래서 그냥 구글이나 그것을 시도하십시오 http://www.javacodegeeks.com/2011/01/android-proximity-alerts-tutorial.html. 나는 그것을 읽지 못했지만 처음에는 나를 위해 괜찮아 보이는

    +0

    감사합니다. 이것은 확실히 유익합니다. 비록 내가 성취하고자하는 것에 정확히 적용되지는 않지만 여전히 유용한 정보가 있습니다. 다시 한번 감사드립니다. – raistdejesus