2012-01-02 305 views
4

對於我只是想在這樣的方式GPS &網絡位置提供商之間進行切換,以確定何時提供商禁用切換到另一種,但我的onProviderEnabled是沒有得到調用onProviderEnabled無法正常工作?

public void onProviderDisabled(String provider) { 
    Toast.makeText(TrackerService.this, "Disabled : " + provider, Toast.LENGTH_LONG).show(); 
} 
public void onProviderEnabled(String provider) { 
    Toast.makeText(TrackerService.this, "Enabled : " + provider, Toast.LENGTH_LONG).show(); 
} 

感謝。

+0

你喜歡低於或不寫代碼? – 2012-01-02 09:53:42

+0

使用下面的代碼回答它肯定會工作。 – 2012-01-02 10:02:43

+0

@YugandharBabu請稍等片刻,讓你知道更新。 – Lenin 2012-01-02 10:05:57

回答

3

定義一個位置監聽器類似如下:

LocationListener locationListener = new LocationListener() { 
      public void onLocationChanged(Location location) { 

      } 
      public void onProviderDisabled(String provider) {} 
      public void onProviderEnabled(String provider) {} 
      public void onStatusChanged(String provider, int status, Bundle extras) {} 
     }; 

然後:

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 
    lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 
+0

感謝您的答覆,讓我試試這個,並會讓你知道結果。 – Lenin 2012-01-02 09:52:17

+0

jainal爲什麼你刪除lm.removeUpdates(this); lm.removeUpdates(locationListenerNetwork);從你回答,有什麼錯誤的..我正要嘗試我的應用程序與該代碼.. – Lenin 2012-01-02 10:17:04

+0

如果你想,那麼你可以從onLocationChanged內刪除你的監聽器。爲了讓它更清楚你我刪除了代碼。 – jainal 2012-01-02 10:26:52