0

携帯電話で LocationManager を使用している場合、ほぼすべての Nexus 5 テスト デバイスで、LocationManager は 1 分ごとに同じ場所を数回検出します (60 秒ごとに場所をリッスンしています)。私が実際に使用しているコードを明確にするために:

    mLocationManager.requestLocationUpdates(60*1000,
            0,
            criteria),
            mLocationUpdateListener, Looper.getMainLooper());

基準はサーバーから設定され、必要な精度 ( Criteria.ACCURACY_COARSEまたはCriteria.ACCURACY_FINE ) のみを定義します。

したがって、他のテスト デバイス (Nexus 4 と Samsung S3) では、ロケーション マネージャーに問題はありません。常に 60 秒ごとに新しい位置を配信します。しかし、Nexus 5 デバイスはある時点で位置をキャッシュしているように見えるため、その場所から数 100 メートル離れていても、まったく同じ場所をサーバーに 5 回送信します。

何が問題なのか、誰にも手がかりがありますか? 興味があれば、mLocationUpdateListener のコードを追加することもできますが、サーバーに場所を送信するだけです。

編集: 場所は常にバックグラウンド サービスで取得されます。Google マップをフォアグラウンドで開くことで、この問題を解決できました。しかしもちろん、それは私の問題の解決策にはなりません。

解決策の編集: Play Services が 6 台の Nexus 5 テスト デバイスすべてで機能しなかったようです。すべてのデバイスを再起動した後、その奇妙な動作を再現できなくなりました...

編集2:また、この動作に出くわし、電話を再起動しても表示され続けます...

4

1 に答える 1

0

これを試してください

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationUpdateListener);

于 2014-05-28T12:39:34.187 に答える