NETWORK_PROVIDER は更新された位置情報を提供していません 質問する

NETWORK_PROVIDER は更新された位置情報を提供していません 質問する
LocationManager locationManager = (LocationManager)getApp().getSystemService(Context.LOCATION_SERVICE); //getApp() returns my Application object
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 1, 1, this);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1, 1, this);

これは私がリッスンするために使用しているコードです。GPS を有効にすると、すべて正常に動作します。ただし、GPS を無効にしてネットワークの場所に頼ると、古い結果 (この場合は 2 日前のもの) が返されます。更新できません。getLastKnownLocation を呼び出すと、同じ古い結果が返されます。

Google マップは問題なく更新されるので、ハードウェア/システム構成の問題ではないことがわかります。

Google で検索してみたところ、同様の問題を抱えている人が何人か見つかりましたが、答えはありませんでした。プロジェクトを API レベル 8 (2.2) と 15 (4.0.3) にターゲット設定してみました。結果は同じです。私の携帯電話は ICS を実行しています。

また、GPS_PROVIDER のリクエストを削除し、getAllProviders() にすべてのリクエストを含めることも試しました。結果は同じです。

NETWORK_PROVIDER が更新されない理由をご存知ですか? ご協力いただければ幸いです。

(追記: いいえ、私は通常、時間/距離パラメータとして「1, 1」を使用しません。デバッグ中に変更しただけです。)

編集: 言及するのを忘れていましたが、isProviderEnabled() は true を返します。

ベストアンサー1

私はついにこの問題を解決する方法を見つけました(私の質問はここです)。

私の場合、S3 Galaxy Mini では、上記のような症状 (再起動するまで位置情報が更新されないなど) がありました。ほとんどの場合、デバイスの電力が不足すると位置情報の更新が停止しますが、電話が完全に充電されているときでも更新が停止することがありました。明らかに、これは のどこかに問題があります。新しい Google Play Services API for locations (クラス) を使用してLocationManager回避することができました。LocationManagerLocationClient

おそらくこれが、Google マップで位置情報の更新がまだ機能していた理由です。Google マップは、Google Play 開発者サービス API が公開される前からこの API を使用していたためです。

フォローすることをお勧めしますこのリンクLocationManagerこの問題が発生した場合に、を使用する代わりに Play Services API を使用して位置情報を取得する方法を示します。

私は Play サービスで位置情報の更新を実行していますが、このような問題はまったく発生せず、いつでも定期的に位置情報の更新を受信し続けています。

注意してくださいこれには、ユーザーのデバイスに Google Play がインストールされている必要があるため、Kindle などは対象外となります。また、最低でも Android 2.2 が必要です。

おすすめ記事