Android - 检测到新的访问点时获取通知?

时间:2010-11-23 06:08:11

标签: android android-wifi wifimanager

Android是否提供了在新Wifi网络附近的通知?设备是否配置为连接到该wifi网络取决于设备是否具有为该特定wifi网络设置的wifi配置,但是每当进入任何新的wifi网络时是否可以获得通知? 我看到了WifiManager类,但是类中的状态似乎没有实现我想要做的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:7)

使用已注册的BroadcastReceiver通过操作接收意图:WifiManager.NETWORK_STATE_CHANGED_ACTION

在此BroadcastReceiver中,您可以从意图中提取NetworkInfo对象:

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

然后处理ni.getState()以检查与wifi网络的连接/断开连接。

这是你在找什么?


回答后编辑

因此,如果您想知道哪些无线网络可用,请使用WifiManager.getScanResults()这会为您提供Scanresult个对象中附近接入点的列表。它们包含接入点的SSID和BSSID,分别是它们的网络名称和mac地址。

您可以使用已注册的BroadcastReceiver异步获取此信息,以接收具有操作WifiManager.SCAN_RESULTS_AVAILABLE_ACTION的意图。然后,每次系统执行wifi扫描时都会通知您,您可以检查自上次扫描后是否出现了新的SSID(即网络名称)。

最后,如果您希望比系统默认扫描更频繁,您可以使用WifiManager.startScan()自行触发wifi扫描。