http://developer.android.com/reference/android/location/LocationManager.html
- public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
- public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
- public void requestLocationUpdates (String provider, long minTime, float minDistance, PendingIntent intent)
- public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
- public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, LocationListener listener, Looper looper)
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
- API Level 1
- 指定されたプロバイダで定期的に測位する。
- 測位には時間がかかるので、すぐにほしい場合は、 getLastKnownLocation(String)で取得。
- 更新の時間インターバルは、minTime[ms]以上になる。
- minTimeの値が小さいと、バッテリ消費につながる。foregroundアプリでなければ、5分以上であることを推奨する。foregroundアプリならば、ユーザ・エクスペリエンスに応じて決める。
- 更新の距離インターバルは、minDistance[m]以上になる。
- 消費電力を抑えるために、PASSIVE_PROVIDERを選ぶと、他のアプリが取得した位置を流用できるようになる。
- メインスレッドなどのlooperが必要。
- つまり、例えば、foregroundで動作していなくてはならない。
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
- API Level 1
- requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)との違い
- looperを指定すれば、メインスレッドがなくてもよい。
public void requestLocationUpdates (String provider, long minTime, float minDistance, PendingIntent intent)
- API Level 3
- requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)との違い
- Intentを使って測位を依頼する。
public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
- API Level 9
- requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)との違い
- Intentを使って測位を依頼する。
- providerを指定しなくても、Criteriaで正確さを設定すれば、あとは、適当にやってくれる。
public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, LocationListener listener, Looper looper)
- API Level 9
- requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)との違い
- looperを指定しなくてはならない。
- providerを指定しなくても、Criteriaで正確さを設定すれば、あとは、適当にやってくれる。
考察
とくに不都合がなければ、最初のAPIである
- public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
を使うのが無難であり、これを紹介しているサイトが多い。
メインのアクティビティが終了した後も動作させたい場合、
- public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener, Looper looper)
- public void requestLocationUpdates (String provider, long minTime, float minDistance, PendingIntent intent)
を使う。しかし、参考になるサイトが少ない。
Criteriaを指定して使いたい場合、
- public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)
- public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, LocationListener listener, Looper looper)
以下のサイトが参考になる。
ほかの参考
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。