2011-02-17 57 views
2

我需要讓我的應用程序監視GPS適配器是啓用還是禁用。我不關心在貨幣運行的實際GPS功能 - 我需要GPS適配器的狀態。如何使用Android SDK監控GPS適配器的狀態?

我可以做手工BU呼籲: String providers = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)

如果「GPS」上市,那麼它的活躍,否則不是。但是,當用戶啓用或禁用GPS時,我找不到任何有關獲取通知的文檔。我曾嘗試在LocationManager中使用addGpsStatusListener,但只在實際獲得GPS定位時纔會通知(例如正在使用地圖應用程序)。

任何想法?

+0

什麼是GPS _adapter_?你的意思是GPS _receiver_?還是你想到一些NMEA翻譯庫? – MSalters 2011-02-17 08:45:15

+0

難道你不能只使用locationListener和一個非常高的(Integer.MAX_VALUE)值爲時間和位置三角洲? – 2011-02-17 09:10:10

回答

6

LocationContentObserver沒關係,我找到了答案;

getContentResolver().registerContentObserver(
    Settings.Secure.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED), 
      false, 
      new LocationContentObserver (new Handler()) 
    ); 

class LocationContentObserver extends ContentObserver { 
    public LocationContentObserver(Handler h) { 
    super(h); 
    } 

    public void onChange(boolean selfChange) { 
     SendNotification(false); 
    } 
}