1

今日、奇妙な問題に遭遇しました。サービスを提供するにはユーザーの地理位置情報が必要であり、これまでのところうまく機能しています (最近の Android Location API リリース前の実装で、まだ更新されていません)。このように登録します

((LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE))
        .requestLocationUpdates((provider == WPS)? 
        LocationManager.NETWORK_PROVIDER : LocationManager.GPS_PROVIDER,
        minTime, minDist, onChange(ctx, provider)); // onChange create a pending intent

そして、特定のイベントで呼び出します

Location gpsLocation = LocMngr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location wpsLocation = LocMngr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

Android 4.0.3 および HTC Sense 4.0 で実行されている HTC One S では、位置の更新を受け取ることはなく、最後に認識された位置は gps に対しては null を返し、 wps に対しては 2 日前の位置を返します。WIFI、GPS、およびモバイルデータがオンになっています。外を歩き回ってみましたが、デバイスが GPS 修正を取得しようとしているのを見ましたが、明らかに取得できませんでした。他のデバイスは、同じコードを使用して gps または wps から位置情報の更新を受信することに問題はありません...

これはこのデバイスでのみ発生します (これはテスト デバイスであるため、ブートローダーはロックされており、ルート化されていないか、レンガを壊す可能性のあるその他のファンキーなものではありません)

私は途方に暮れています、何かアイデアはありますか?

更新 デバイスを再起動したので、問題は再発しませんでしたが、何が問題を引き起こしたのかまだ疑問に思っています...

更新 2

昨日、Galaxy Nexusの公式Android 4.2.2で同じ問題に遭遇しました。したがって、これは一般的にAndroidの問題のようです。

どうやらこれを解決する方法を誰も知らないようですが、Location API が修正を送信しなくなったことを検出する方法はありますか? lastKnownLocation() のタイムスタンプをチェックする以外に?

4

0 に答える 0