2016-06-27 16 views
0

私はAndroidの場所を使用するAndroidアプリを開発しています。私はそれが(GPSとネットワークプロバイダ)を行う2つの方法であることを知っています。私はこの話題についてたくさん読んだことがあるが、まだ疑問がある。私が一部の会社のディレクターであると仮定し、私がいつでも自分の労働者がどこにほしいかを知りたいと思います。どの更新期間がUpdateLocationに入れるのが最適なのか教えてください。最高ののは、秒に0を、メーターに0を入れたときですが、それはバッテリーにとっては本当に悪いことです。しかし、私は可能な限りバッテリーを節約したい。 あなたのアドバイスは何ですか?Androidでの位置

+0

多くの良い質問は、専門家の経験に基づいてある程度の意見を生成しますが、この質問に対する回答は、事実、参考文献、または特定の専門知識ではなく、概ね意見に基づいている傾向があります。 – Emil

+0

いくつかの値を試し、一般的ないくつかのデバイスで測定して、受け入れられるものが得られるまで測定してください。 – Michael

+0

ありがとうございます。あなたの意見は何ですか? – Atenica

答えて

0

使用この変数: -

private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 2; 
private static final long MIN_TIME_BW_UPDATES = 1000 * 1; 
1

あなたの場合には、定期的位置更新を使用しては非常に良いではない解決策のように思えます。すべての時間を実行している場合、Gpsはバッテリーを消耗します(ネットワークプロバイダーは少し少なくなります)。あなたの従業員はそのようなアプリを感謝しません。 代わりにジオフェンシングを使用することができます。特に、低消費電力アプリケーション向けに作成されています。 ここでは、1つのプロジェクトで使用されているアルゴリズムです。監視を開始し、現在のユーザーの場所を取得し、ある半径(おそらく屋外で100m)を持つ円を作成する場合。人がこのサークルを歩いているときは、新しい現在地を取得し、履歴にdbに保存し、古いジオフェンスを削除して新たに作成します。 バックグラウンドサービスでジオフェンスを使用するためのコードです(アプリが終了している場合でも)。ちょうどそれを少し変更してください。 https://drive.google.com/folderview?id=0B3nZIRmN7uQyazVzMzNDTXA0Q0k&usp=sharing

+0

良いアプローチです。たとえば、庭を円の部分に分けることができます。ゾーンA、ゾーンB、ゾーンCのように表示されます。その後、ワーカーがゾーンAにいるように監視することができます。 – Blackkara

0

ドキュメントでは、リアルタイムアプリケーションの場合、5秒間隔とHIGH_ACCURACYが推奨されます。したがって5秒間隔があなたにとっても最適です。

の位置情報の更新に、0間隔などの積極的なパラメータを要求することは勧められません。なぜなら、AFAIKは、LocationManagerインスタンスを取得するとアンドロイドシステム全体に関連しているため、メインスレッドに悪い結果を与える可能性があります(私はルーパーを渡してみましたが、その場合でも、 )

私は絶対に融合ロケーションプロバイダをお勧めします。これはgpsとネットワークプロバイダをラップするため、デバイス上のセンサーも使用します。たとえば、移動していないときにデバイスが場所を取得することはできません。

バッテリー:正直なところ、上記の方法ではバッテリーが非常に早く消耗します。

commonswareからあなたのために良い例:link

はそれであなたは、電源管理、ウェイクアップ、位置情報の更新とタイムアウトについての素敵な戦術を参照してくださいよ、このプロジェクトをお読みください。しかし、それはLocationManagerを使用します。あなたが代わりに溶融位置apiと結合すれば、より良いかもしれません。

+0

したがって、融合ロケーションプロバイダを使用するのが最適ですか?それはgpsとローカルネットワークプロバイダの代用ですか?私はそれについて読んだことがありますが、あなたの意見を聞くのはクールです... – Atenica

+0

私は融合したプロバイダを使用することをお勧めします。あなたはこのビデオ[link](https://youtu.be/Bte_GHuxUGc?t=735)を12:15から14:45まで見ることができます。 – Blackkara

+0

また、[このリポジトリ](https://github.com/googlesamples/android-play-location/tree/master/LocationUpdates)をチェックして、融合プロバイダAPIの使用方法を確認してください – Blackkara