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