0

実際、私の問題は、場所を取得できる場合と、Android の実際のデバイスで場所を取得できない場合があります。場所を取得するために次のコードを使用しました。

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);

アプリケーションの起動時に場所を取得する必要があります。なぜ時々失敗するのかわかりません。この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

@jsmithが私の質問にコメントしました。

電力要件を増やし、ネットワークまたは GPS 信号を取得できる場所を必ずテストしてください。これで問題が解決する場合は、単にセンサーが位置を知るのに十分な受信が得られていないということです。

これが私の質問に対する正しい答えです。今は正常に動作しています。

于 2012-03-19T13:29:54.530 に答える
0

「場所の更新」をリクエストするのを忘れました。 を宣言した後にこの関数を使用してLocationManagerください:

locationManager.requestLocationUpdates(provider, 0, 0, this);

クラスに実装させてから、LocationListenerこの関数を追加する必要があります。

public void onLocationChanged(Location location) {
//get the location here
}

場所を繰り返し取得したくない場合は、場所を取得した後、次の方法で「場所の更新」を停止する必要があります。

locationManager.removeUpdates(this);

アプリケーションが常に「場所の更新」をリッスンするようにする場合は、更新をリクエストして&onResume()の更新を削除することをお勧めします。onPause()onDestroy()

幸運を

于 2012-03-13T20:11:17.630 に答える