今日、奇妙な問題に遭遇しました。サービスを提供するにはユーザーの地理位置情報が必要であり、これまでのところうまく機能しています (最近の 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() のタイムスタンプをチェックする以外に?