1
私のアプリでは、両方のプロバイダをきめ細かく正確に設定して、場所の更新を待ち受けました。私は、細かい位置を使用してGPSによって提供されることを理解し、粗いを使用してネットワークプロバイダ(このリンクhttp://www.alonsoruibal.com/using-two-locationproviders-on-android/)から場所が提供されます。今、gpsが無効になっている場合は、私のアプリをネットワークに切り替えることができます。これはonStatusChanged
メソッドを使用して行うことができますか? 私の質問は、このコードは大丈夫ですか? (両方のプロバイダ用)gpsとネットワークプロバイダの切り替え
public static final int OUT_OF_SERVICE = 0;
public static final int TEMPORARILY_UNAVAILABLE = 1;
public static final int AVAILABLE = 2;
Criteria criteria = new Criteria();
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
providerFine = locationManager.getBestProvider(criteria, true);
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
providerCoarse = locationManager.getBestProvider(criteria, true);
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
if (provider.equals(providerFine)) {
if (status == 0) {
locationManager.requestLocationUpdates(providerCoarse, 60000,20,this);
}
if (status == 2) {
locationManager.requestLocationUpdates(providerFine, 60000, 20, this);
}
}// provider == fine
}
とアップデートがすでに、要求された場合にも、(私のコードのどこかの前に、私はここに入れていない)、私はこのonStatusChanged方法でそれらを再び要求した場合、それはOKだろう。または、私は最初に更新を削除する必要がありますか?
ありがとう、ありがとう、私はそれについて不思議だった。ありがとう – Sandra
@Sandraあなたは、スイッチングが正常に動作していることを確認してください、私は同様のタスクを達成しようとしています。 – Lenin