2010-11-23 46 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