1
在我的應用程序中,我設置了精確度和粗略度的兩個提供程序來偵聽位置更新。我明白,使用罰款的位置將由全球定位系統提供,並使用粗略的位置將由網絡提供商提供(從此鏈接http://www.alonsoruibal.com/using-two-locationproviders-on-android/)。現在,如果gps被禁用,我希望我的應用切換到網絡,並啓用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方法。或者我必須先刪除更新?
好的,謝謝你,我在想這件事。謝謝 – Sandra
@Sandra可以請你確認切換工作正常,我正在嘗試實現類似的任務。 – Lenin