2011-01-04 31 views
3

ユーザーが移動していなくても毎分の座標を取得したいと思います。だから私は、次のパラメータを持つrequestLocationUpdates使用:Androidで毎分GPS座標を取得する方法は?

locMgr.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, 
        60000,  // minTime in ms 
        0,  // minDistance in meters 
        PosljiLokacijo.this); 

しかし、私は私のHTCヒーロー(2.1アンドロイド)上でそれをテストし、私は動いていない午前、onLocationChangedを()が呼び出されることはありません。私がminDistanceを1に変更すると、スタート時にいくつかのアップデートが表示されますが、その後は非常に不定期になります。

1分ごとに座標を受け取るには、どのように2つのパラメータ(minTimeとminDistance)を選択する必要がありますか?文書によると

答えて

1

最後の場所を変数に保存して1分ごとに出力しない限り、「minTime」または「minDistance」はこの場合に役立ちません。 locationManagerがそれらの変数を上書きするようにして、1分後に場所の変更が見えるようにします。そうすれば、変数が常に実際の位置を保持するので、更新を待つ必要はありません。

locationManagerから場所を取得し、requestLocationUpdatesを使用せずに1分後に場所を再度要求することもできます(間隔は何でも構いません)。


http://developer.android.com/reference/java/util/Timer.html

あなたはまた、システムとしてのバッテリーを節約する必要があることの方法は、すべての時間の更新を探していません。場所を取得し、あなたの方法を繰り返し呼び出しを設定するTimerを見てみましょう。

1

MINTIMEミリ秒単位の通知のための最小時間間隔、。このフィールドは電力を節約するためのヒントとしてのみ使用され、ロケーション更新間の実際の時間はこの値より大きくても小さくてもかまいません。

私が望むことをするためには、minTimeを0に設定してあまりにも頻繁に値を取り除くしかありません。あなたは、あなたが望むほど頻繁に更新を得ることはまだ保証されていないだろうし、あなたのアプリがバッテリーキラーであることにも準備されている。

+1

このアプリは車で使用され、プラグインされているため、問題はありません。 – DixieFlatline

+1

バッテリーは常に問題です。 – nifo

+0

はい。 GPS(特にナビゲーション)は、いくつかのデバイスで非常に多くの電力を使用することができます。 –

関連する問題