Google Play Serviceを利用する新位置情報取得APIについて まとめ

Android

Google Play Serviceを利用する新位置情報取得APIについて まとめ

AndroidのGoogle Play Serviceを利用する位置情報APIについて、そこそこ実装できてきましたので、少しまとめておきたいと思います。

AndroidのGoogle Play Serviceを利用する位置情報APIは、特に名前もないのですが、以前のLocationManagerを使う位置情報取得の流れとは、さまざまな点で変わりました。
fused location providerと呼んでいる人もいますが、これはプロバイダの名前が、fused location providerというものになったというわけで、一部の機能だけのことです。

位置情報の精度

これは弊社で試してみたところの実感なので、厳密に計測したわけではありません。
位置情報の精度は、GPSで計測できるものはそれほど変わりませんね。
多少よくなったか、という感じですが、相変わらず、機種による差が大きいようです。

大きく改善されたのは、Wi-fiによる位置情報です。
ぶれている時は、相変わらず大きくぶれていますが、Wi-Fiの位置情報だけで、ほぼ正確な位置情報を示す場合も増えました。

基地局の情報も位置情報特定に役立てるようになったので、それが効果を発揮しているのでしょうか。

バッテリーの持ち

これは非常によくなりました。
弊社で、Smart動態管理という、位置情報を一定間隔で送信するというアプリをリリースしていますが、この新APIに変更したところ、以前は充電なしでは5時間ぐらいしか持たなかったところ、今は18時間ほど持つようになりました。(利用した端末はGalaxy S3a)
これは大きな改善ですよね!

サンプル

Googleさんがサンプルを配ってくれています。
大変ありがたいことですね!
下記からダウンロードできます。

下記のURLの、Dowonload the sampleという青いボタンをクリックして、LocationUpdates.zipをダウンロードします。
http://developer.android.com/training/location/retrieve-current.html

仕組み

以前は

 LocationListener

インターフェースを実装して作っていましたが、今度から

 GooglePlayServicesClient.ConnectionCallbacks,
 GooglePlayServicesClient.OnConnectionFailedListener, 
 LocationListener 

を実装します。

1番目のLocationListenerと2番目のLocationListenerは、名前はほぼ同じですが、中身が違うので、これは注意が必要です!!

旧LocationListenerはandroid.location.LocationListenerですが、
新LocationListenerはcom.google.android.gms.location.LocationListenerです。

私自身はこれにちょっとハマりましたので、みなさんは気をつけてください。

さて、肝心の実装方法です。

Google Play Serviceを利用する新位置情報取得APIについて 実装方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です