3

저는 솔루션을 통해 해왔고 위치 추적 로직을 구현하는 데 많은 방법이 있다는 것을 알았습니다.대부분의 전력 효율적인 위치 추적 구현은 무엇입니까? Intent/BroadcastReciever/LocationListener/Service/IntentService/AlarmManager?

  1. 의도 + 브로드 캐스트 리시버 + LocationListener
  2. 의도 + IntentService + 알람 관리기
  3. LocationListener
  4. 다른 기술 또는 위의 다른 조합 ...

내가 알아 내려고하고있는 무슨 같은 목표를 달성하는 가장 좋은 방법 (가장 효율적인 방법)이 될 것입니다 ...

나는 라이브러리 클래스 MyLocationClass.java에는 두 가지 메소드가 있습니다. 1. startTracking() - T 시간 후에 사용자가 X 거리만큼 이동 한 경우에만 사용자 위치를 전송합니다. 2. stopTracking() - 위치 업데이트 전송을 중지합니다.

간단한 대답 때문에 더 나은 사용자 경험을 제공 그것의 붙박이 시간 통과/거리 이전 기능의 LocationListener 것 같다,하지만 ...

가 나는 GPS 모든 시간에있을 싶지 않다? 사실 그것은 T와 X가 교차 할 때에 만 켜져 야합니다. Service/IntentService 및/또는 알람 관리자 타이머를 사용하면 더 나은 솔루션이 될 것입니까? LocationListeners가있는 Broadcast Receiver가 더 나은 솔루션이 될 수 있습니까?

좋습니다. Thnx

+1

모두가 원하는 작업에 따라 달라집니다. 데이터 – Ifor

답변

2

나는 서비스에서 구현 된 위치 수신기를 사용할 수 있다고 생각한다. 서비스가 시작될 때 GPS 수신을 시작하고 서비스가 중지되면 GPS 수신기를 제거하십시오. GPS를 듣고 싶을 때이 서비스를 시작하십시오.

또한 "requestLocationUpdates"메소드를 살펴보십시오. 이 함수의 minTime 및 minDistance 필드는 다음과 같이 설명됩니다.

minTime 알림의 최소 시간 간격 (밀리 초). 이 필드는 절전을위한 힌트로만 사용되며 위치 업데이트 간의 실제 시간은이 값보다 크거나 작을 수 있습니다.

minDistance 미터 통지의 최소 거리 간격은

+0

위의 시나리오에 대한 몇 가지 코드를 공유해 주시겠습니까? – Karthick

0
> Most power efficient location tracking implementation? 

가장 전력 효율 (및 inacurate) 솔루션은 GPS를를 사용하지 이다 전혀 때문에 GPS 수신기 (적어도 내 삼성 스마트 폰)은 전력 공급을 크게 늘린다.

휴대 전화 공급자에게 로그인 한 휴대 전화에서 Android 앱을 실행중인 경우 핸드폰 cellid - 휴대 전화에 셀 위치가 변경되었음을 알리는 방송이 있습니다. 앱에서이를 수신 할 수 있습니다. 너무.

핸드폰 수신기가 이미 실행 중이며 휴대 전화가 계속 연결되어있어 최소한의 에너지 오버 헤드가 발생합니다.

그러나 셀 ID를 다시 위치로 변환하는 방법을 찾아야합니다.

안드로이드 앱 llama은이 cellid-broadcast를 사용하여 위치 기반 작업을 실행합니다. "지금은 7 시간 동안 일하고 있습니다. 백그라운드에서 모든 셀을 수집하여이를"직업 "으로 표시합니다.

+0

감사합니다 k3b. 제 질문은 다른 매개 변수 (CellTower Triang/GPS 상수)를 유지하는 최상의 결과를 가져 오는 구현에 대해 더 많이 질문합니다. 정확성을 위해 지금 논리를 어떻게 구현해야합니까? Listener 또는 Receivers 또는 Service ...를 선택해야합니까? –

+0

서비스에 위치 응답기가 이미 구현되어 있습니다. – sais

관련 문제