LocationClient
とはどう違いますかLocationManager
?
それらの間の長所と短所は何ですか(バッテリー、精度など)?
どちらを使うのが良いですか?
LocationClient
とはどう違いますかLocationManager
?
それらの間の長所と短所は何ですか(バッテリー、精度など)?
どちらを使うのが良いですか?
Location Manager
Android SDK で導入され、android の機能として使用できます。
Location Client
これは Google Play SDK の一部であり、最近の Google IO 2013 で導入されました。
Location Client は最新であるため、最小限のエネルギー (バッテリーの消耗) で正確に位置を取得するのに効率的であることが理解できます。
更新: LocationClientは非推奨です。GoogleApiClientを使用する必要があります。その例はここにあります。
Google Play サービス チームはコードをクリーンアップし、LocationClient 機能を GoogleApiClient に移動しました。
同じチュートリアルが http://developer.android.com/training/location/retrieve-current.htmlにあります
次のリンクで、このテーマに関する IO トークを見つけることができます http://www.youtube.com/watch?v=Bte_GHuxUGc
再度更新
GoogleApiClientは再び廃止されました。代わりにGoogleApiベースの API を使用する必要があります。
私はアンドロイドでロケーションベースのアプリケーションを開発していますが、LOCATION CLIENT を使用することは絶対にお勧めしません。理由:
位置情報の更新動作は非常に異常であり、期待どおりに機能しません。つまり、ネットワークを切り替えると、位置情報の更新が停止します。(それはあなたにいくつかの古い場所を与え続けます)
ロケーション クライアントは、Google プレイ サービスが必要なため、Android OS の変更された Android バージョンでは機能しません。
私の経験では、Location Client は電話のバッテリーには適しているかもしれませんが、タイムリーに正確な位置情報の更新を提供するのには適していません。
信頼できるロケーション クライアントがまったく見つからないため、古き良き Location Manager をお勧めします。
PS : 位置情報ベースのアプリケーションで現在地を取得していない場合、バッテリーを節約する意味はありません。
編集: LocationManager と LocationClient (どちらもドキュメントで入手可能) の実装を知っている場合は、独自の LocationClient のようなラッパー (コールバックなどを含む) を作成できます。これは LocationManager で動作しますが、カスタム調整可能なプロパティを使用します。
編集2:
タイムリーな位置情報の更新を提供する LocationManager Wrapper クラスをここで見つけてください。
私は追跡アプリに取り組んできましたが、私の経験では、LocationManager は LocationClient よりも優れています。LocationClient には、GPS のみから位置情報を更新するように指定する方法はありません。許可されるのは「高精度」を指定することだけです。これはほとんどの部分で機能しますが、数メートルの指定された精度で数百メートル離れた場所の更新を時々取得します。使用できないサンプルを入手したことを知る方法はありません。LocationManager で GPS_PROVIDER を指定すると、極端に不正確なサンプルが取得されることはありません。私たちのためにうまくいっています。
少し前に Google Play Services に切り替えた人から、いくつかの経験をお伝えできます。
私は、位置情報サービスを広範囲に使用する約 2.5 年前のアプリを持っています。もちろん、最初から LocationManager を使用しました。これは、Android プラットフォームで使用できるものだからです。
IOS と比較して、Android の位置情報サービスはかなり悪い経験でした。バグが多く、信頼性が低く、IOS アプリよりも正確な位置情報が得られず、バッテリーの消耗も多くなりました。それはドラッグでした。
そのため、この夏の 6 月に Google が新しい API を発表したとき、私たちはそれに飛びつきました。それはずっと良いです。いくつかのこと:
それはより速く、より信頼できます。
バグが少ないです。例として、古い API では、新しいタイムスタンプを持つ「古い」修正を取得することがありました。これはもう決して起こりません。他にもありますが、さらに長い投稿になります。
確かにバッテリーの減りは少ないです。たとえば、マップ ビューを開いていると、GPS が常に実行され、GPS アイコンが表示されていました。これは、新しいものには当てはまりません。これにより、ユーザーは何が起こっているのか疑問に思いました。これはもはやそれほど大きな問題ではありません。
そのため、場所の出力と作業に関しては、すべてが優れています。ただし、いくつかの欠点があります。
Google Play サービスをインストールする必要があります。つまり、「Google が承認していない」電話モデルでは動作しません。場合によっては、インストールする必要があることをユーザーに伝える必要があります。
API 自体は、部分的にはポイント 1 が原因で、より複雑な IMO です。「通常の」コールバックに加えて、つまりロケーションの修正などを待機しています。プレイサービスを確認する必要がある開始前に参加するプロセスができました。利用可能であり、locationclient を「接続」します。これは追加のコードであり、把握するのが少し複雑です。コードで考慮すべきより多くの障害条件も(気にすることができれば...)
Google Play サービス自体は 2.2 以降を必要とするため、それより古いデバイスでは動作しません。一部のクライアントには、アップグレードする必要があることを伝えなければなりませんでした...
お役に立てれば。