1
我想在手機連接到無線網絡的SSID發生變化時執行一些操作。如果手機處於「非活動狀態」(例如鎖定狀態),這也可以工作。當wifi SSID發生變化時執行代碼
服務是一種正確的應用類型嗎?我猜Android可以讓我的服務在這類事件上被調用?我會怎麼做?
我想在手機連接到無線網絡的SSID發生變化時執行一些操作。如果手機處於「非活動狀態」(例如鎖定狀態),這也可以工作。當wifi SSID發生變化時執行代碼
服務是一種正確的應用類型嗎?我猜Android可以讓我的服務在這類事件上被調用?我會怎麼做?
創建一個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>