2013-11-01 23 views
1

我想在手機連接到無線網絡的SSID發生變化時執行一些操作。如果手機處於「非活動狀態」(例如鎖定狀態),這也可以工作。當wifi SSID發生變化時執行代碼

服務是一種正確的應用類型嗎?我猜Android可以讓我的服務在這類事件上被調用?我會怎麼做?

回答

5

創建一個BroadcastReceiver監聽WifiManager.NETWORK_STATE_CHANGED_ACTION,從onReceive內部的intent額外WifiManager.EXTRA_BSSID獲取SSID。

如果您的SSID處理工作昂貴,請將其卸載到服務中(請參閱BroadcastReceiver.onReceive的文檔)。

您的AndroidManifest.xml應該是這個樣子:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    ...> 

    <!-- Permission to listen for network changes --> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     ...> 
     <receiver android:name=".YourBroadcastReceiver" > 
      <intent-filter> 
       <action android:name="android.net.wifi.STATE_CHANGE" /> 
      </intent-filter> 
     </receiver> 
    </application> 
</manifest> 
相關問題