3

私は解決策を見つけ、場所追跡ロジックを実装する方法がたくさんあることを発見しました。最も効率的な位置追跡の実装ですか? Intent/BroadcastReciever/LocationListener/Service/IntentService/AlarmManager?

  1. テント+ BroadcastReceiver + LocationListener
  2. IntentService + AlarmManager
  3. LocationListener
  4. 他の技術以上の異なる組み合わせ+意向...

私は何を見つけるためにしようとしています同じことを達成するためのベストプラクティス(最も効率的な方法)になるでしょう...

私はライブラリクラスMyLocationClass.javaには2つのメソッドがあります 1. startTracking() - T時間後にユーザがX距離だけ移動した場合にユーザ位置を送信し始めます。 2. stopTracking() - 位置更新の送信を停止します。

簡単な答えがあるため、より良いユーザー体験を提供し、その作り付けの時間合格/距離移動機能をLocationListenerのようですが、その後...

私はGPSがすべての時間になりたいいけませんか?実際には、TとXを交差させた場合にのみオンにする必要があります。 Service/IntentServiceやアラームマネージャーのTimerを使用する方が良い解決策になりますか? 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-broadcastsがあり、携帯電話にそのセルの位置が変更されたことを通知します。あなたのアプリはこれらを受け取ることができます。あまりにも。

携帯電話レシーバはすでに動作しており、携帯電話は接続を維持するために起きなければならないため、エネルギーのオーバーヘッドは最小限に抑えられます。

しかし、cell-idをある場所に変換する方法を見つける必要があります。

アンドロイドアプリllamaは、このcellid-broadcastを使用して、位置に基づいた行動を引き起こします。それは私が言うことができる学習モードを持っています: "今私は7時間の私の仕事にです。バックグラウンドでは、すべてのcellidを収集し、これらを"仕事 "とマークします。

+0

ありがとうk3b。私の質問は、他のパラメータ(CellTower Triang/GPS constant)を保持する最良の結果をもたらす実装に関するものです。正確さのために、私はどのようにロジックを実装する必要がありますか?リスナーまたはレシーバーまたはサービスなどを選択する必要がありますか? –

+0

サービスにロケーションリスナーが実装されています。 – sais

関連する問題