1

一定の間隔ごとに固定位置を取得したいと思っています.は一定の時間ごとに修正されます。私は歩くコードの次の部分でロジックをテストしていました(運転中に大きなパラメータで試しました)が、実際に私に定期的な位置修正を返すわけではありません。リクエストが開始されたら直ちにロケーションフィックスを返します。その後、数分後に1つのロケーション修正を返すこともありますが、最大1時間はロケーション修正を返しません。Android Fused Location定期的な更新を配信しない

LocationRequest locationRequest = LocationRequest.create(); 
int priority = PRIORITY_BALANCED_POWER_ACCURACY; 
locationRequest.setPriority(priority); 
locationRequest.setInterval(localInterval); //set to 6 minutes 
locationRequest.setFastestInterval(localFastestInterval); //set to 3 minutes 
locationRequest.setSmallestDisplacement(smallestDisplacement); //set to 10 meters 
locationRequest.setNumUpdates(numUpdates); //set to Int.MAX_VALUE 
locationRequest.setExpirationDuration(expirationDuration); // set to Long.MAX_VALUE 
LocationServices.FusedLocationApi.requestLocationUpdates(locationClient, locationRequest, pendingIntent); 

ディスプレースメントを0に設定すると、定期的な位置更新が行われます。何が起こっているか考えてみませんか?

+0

「numUpdates」の値は何ですか? – SachinS

+0

@SachinS同じ行にコメントが表示されます – 2cupsOfTech

答えて

1

長い徹底的なテストの後に&実験を行ったところ、setFastestIntervalに電話しないと、正確には、setIntervalで設定された間隔に従って定期的な更新が行われることがわかりました。

しかし、他のアプリケーションでは、ロケーションフィックスが非常に速く配信される可能性があるため、特定の時間のしきい値より速く配信されたロケーションフィックスを無視するチェックを入れてください。

ドキュメントによると:setFastestInterval(long)setInterval(long)よりも遅く設定されている場合は、その後、あなたの効果的な最速の間隔がしたsetInterval(長い)ですが、それは起こりません。たとえば、設定次のパラメータは、1分ごとを解決するあなたのハードの場所を与える必要がありますが、それは(AT-少なくともマシュマロに)されていません。

interval = 1 min 
fastestInterval = 20 min 
displacement = 0 

誰もが素晴らしいだろうコードの切れ端で私の調査結果を反証することができます。

関連する問題