2010-11-23 14 views
3

Android是否提供了一個新的Wifi網絡附近的通知?設備是否配置爲連接到該WiFi網絡取決於該設備是否爲該特定的WiFi網絡設置了WiFi配置,但是是否可以在進入任何新的WiFi網絡時收到通知?
我看到了WifiManager類,但類內的狀態似乎並沒有達到我想要做的。有任何想法嗎?Android - 檢測到新接入點時通知您?

+0

你應該使用服務,將檢查WiFi網絡的特定時間間隔。 – Sandy 2010-11-23 06:38:54

回答

7

使用BroadcastReceiver註冊以接收意圖採取措施:WifiManager.NETWORK_STATE_CHANGED_ACTION

在這種廣播接收器,則可以從意圖提取NetworkInfo對象:

NetworkInfo ni = (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); 

然後處理ni.getState()從WiFi網絡檢查連接/斷開。

這是你在找什麼?答案後


編輯

所以,如果你想知道哪些WiFi網絡可用,使用WifiManager.getScanResults()這給你附近的接入點的Scanresult對象名單。那些包含接入點的SSID和BSSID,它們分別是它們的網絡名稱和MAC地址。

您可以通過使用BroadcastReceiver註冊以接收意向行動WifiManager.SCAN_RESULTS_AVAILABLE_ACTION來異步獲取此信息。然後每次系統執行無線掃描時都會收到通知,並且您可以檢查自上次掃描以來是否出現了新的SSID(即網絡名稱)。

最後,如果您希望掃描的頻率比系統默認的頻率更高,您可以使用WifiManager.startScan()自己觸發無線掃描。

+0

感謝您的回答,但這並不表示新的WiFi網絡嗎?我認爲它會改變連接網絡的狀態 – 2010-11-23 12:35:44