位置情報を取得するにはLocationManagerが提供されていますが、GPSとWiFiの設定に依存してLocationProviderの切り替えが必要でした。Google Play services APKが提供するLocation Serviceを使用すれば、Providerを考慮することなく位置情報を取得することができます。
Permissionの設定
Location Serviceを使用すには、AndroidManifest.xmlにPermissionの記載が必要です。LocationManagerと同様に、位置情報の精度に応じてPermissionが異なります。
LocationClientの接続
Location Serviceを使用するには、LocationClientクラスの生成が必要です。
第2引数にConnectionCallbacksインターフェイス、第3引数にOnConnectionFailedListenerインターフェイスをセットします。ConnectionCallbacksインターフェイスは、LocationClientがLocation Serviceに接続 / 切断した際にコールされます。OnConnectionFailedListenerは何らかのエラーが発生した場合にコールされます。
LocationClientの接続要求はLocationClient#connectメソッドをコールします。
接続に成功すると、mConnectionCallbacks#onConnectedがコールされます。
LocationRequestの生成
LocationClientの接続が成功した後に、requestLocationUpdatesメソッドをコールし位置情報の取得要求を行います。
第1引数にLocationRequestクラスを、第2引数にLocationListenerインターフェイスをセットします。LocationRequestクラスは次のようなセットモジュールを提供します。
メソッド | 内容 |
---|---|
setInterval | 位置情報の更新間隔をmsで指定 |
setPriority | プライオリティ(精度)の指定 |
setExpirationDuration | 要求の期間(動作時間を)msで指定 |
setFastestInterval | 位置情報の最速更新間隔をmsで指定 |
setSmallestDisplacement | 最小移動距離をmで指定(指定メートル移動したら更新) |
位置情報の取得
位置情報はmLocationListener#onLocationChangedメソッドにてAndroid OSから受け取ります。位置情報はLocationクラスとして取得します。
LocationClientの停止
位置情報の更新を停止するには、LocationClientクラスのremoveLocationUpdatesメソッドをコールしリスナーを解除します。続けて、disconnectメソッドをコールしLocation Serviceから切断します。
0 件のコメント:
コメントを投稿