2013-06-04 2 views
7

動作しません。私の問題は、私がsetExpirationDuration(WHATEVER_MILLIS)を何ミリ秒に設定しても、1分間動作することです。Androidのは、場所の要求は、設定期限の期間は、私はI/O 2013</p> <p>それが正常に動作して導入されていた場所の新しいAPIを使用していると私はその結果に問題がない

これは私のコードです:私はアプリを実行すると

LocationRequest locationRequest = LocationRequest.create() 
          .setInterval(10 * 60 * 1000) // every 10 minutes 
          .setExpirationDuration(10 * 1000) // After 10 seconds 
          .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 

、衛星インジケータがそうトレイに表示されます、私はそれをわずか10秒を見て期待しています。しかし、1分後に消えてしまいます。

ご意見やご感想をお寄せください。ありがとう。

+0

インターバル時間を1分のままにする有効期限で割ることがあります。 – JRowan

+0

JRowanに設定しても、私が設定したミリ波衛星インジケータが1分間表示されても関係ありません。 – Hesam

+0

おそらくその優先度の高い精度であるgpsが、正確な場所で家に帰り、おそらく有効期限をオーバーライドすると思われますか? – JRowan

答えて

1

Androidでは実際の問題だと思われるため、手動で場所の更新を削除するための回避策があります。

listHandler = new Handler() { 
     public void handleMessage(Message msg) { 
      if (msg.what == 0) { 
       mLocationClient.removeLocationUpdates(MyActivity.this); 
       //Location Updates are now removed 
      } 
      super.handleMessage(msg); 
     } 
    }; 

ロケーションの更新を要求した後(最大10秒間)、このハンドラを呼び出すと、もちろん10秒間遅延します。

myLocationClient.requestLocationUpdates(...); 
listHandler.sendEmptyMessageDelayed(0, 10000); 

これは、10秒後にあなたのロケーションの更新が削除されることを保証します。ドキュメントで

1

https://developer.android.com/reference/com/google/android/gms/location/LocationRequest.html#setExpirationDuration(long)

それはと言う:(要求が場所クライアントに渡されたときではなく) は「期間がすぐ始まるので、要求が再いる場合は、再度、このメソッドを呼び出します後で使用されます。

一つは、次の行が呼び出されたときに、この期間が開始することを期待する:

LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, this); 

しかし、ドキュメンテーションは、リクエストオブジェクトが作成されたときに、この期間が始まる述べています。

関連する問題

 関連する問題