私たちのアプリでは、位置を追跡するために融合ロケーションプロバイダ(FLP)を使用しました。私たちは、アプリがロケーションコールバックが呼び出されなくなる状態になることがあることに気付きました。問題のアプリは主に2つのタブレット(ネクサス7とLG G-pad 8.3)で使用されます。この問題は両方のデバイスで発生しています。一般的には、デバイスをリセットすることで問題が緩和されるようです。私たちは、FLPを使用するためのベストプラクティスのほとんどに従うと考えています。しかし、私たちがFLPをどのように使用するかを示すこのサンプルコードをまとめる場合には、融合ロケーションプロバイダ - onLocationChangedの呼び出しが停止する
のGoogle APIクライアントを取得し、接続を呼び出す:
一度接続m_googleApiClient = builder
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
m_googleApiClient.connect()
我々は場所のコールバック用のリスニングを開始:
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
locationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
:
@Override
public void onConnected(Bundle bundle) {
m_fusedLocationProviderApi.requestLocationUpdates(m_googleApiClient, m_locationRequest, this);
}
は、ロケーション要求は次のようになります次に、コールバックを実装します。
@Override
public void onLocationChanged(Location location) {
// set location member var and record timestamp.
}
問題が発生すると、エラーコールバックが発生しないように見えます。 Googleでは長時間GPSを受信していないことを検出したときにgoogle apiクライアントでreset()を呼び出してみました。また、(getLocationAvailabilityを使用して)2秒ごとにタイマーを使用してロケーションの可用性を監視します。通常、ユーザーがデバイスをリセットすると(電源オン、電源オフ)、問題が解決されます。
私たちの質問は以下のとおりです。
- は、他の誰がFLPと、この問題に気づいていますか?
- ユーザーのリセットが不十分で問題を解決するために、さらに多くの方法がありますか?場所の更新のヘルプを削除するのが助かりますか?
- 問題を診断するために収集できる情報がありますか?
私はまったく同じ問題を抱えています。 Google Playサービスのどのバージョンを使用していますか、それが違いを生むのではないかと思ったら、どのOSバージョンをお使いですか? –
私は最近9.2を使い始めました。1とそこにまだ問題を見ていない(指が交差した)。 – noahd
私は最近まったく同じ問題を抱えています。 Google Playサービスのバージョンをアップグレードして以来この問題が発生していますか?ありがとうございました。 –