2011-08-11 3 views
1

내 앱에서는 위치 업데이트를 수신하기 위해 두 공급자를 모두 정밀하게 설정했습니다. GPS를 사용하면 위치 정보를 잘 사용할 수 있으며 네트워크 공급자가 위치 정보를 제공한다는 사실을 알고 있습니다 (이 링크 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 방법 다시 내가 그들을 요청하는 경우가 확인 될 것이다, (두 제공자에 대한) (전에 어딘가에 내 코드에서, 나는 여기에 넣지 않았다) . 아니면 먼저 업데이트를 제거해야합니까?

답변

0

나에게 잘 보입니다. 더 이상 추가하기 전에 모든 업데이트 수신기를 제거하는 것이 좋습니다. 그것을 깨끗하고 일관되게 유지하십시오.

+0

감사합니다. u, 그것에 대해 궁금합니다. 감사합니다 – Sandra

+0

@Sandra 당신이 전환 작업이 잘 작동하는지 확인해 주시겠습니까? 비슷한 작업을 수행하려고합니다. – Lenin