3

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

4

1 回答 1

7

使用BroadcastReceiver注册来接收带有动作的意图:WifiManager.NETWORK_STATE_CHANGED_ACTION

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

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

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

这是你要找的吗?


回答后编辑

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

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

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

于 2010-11-23T08:57:59.170 回答