12

我想编写一个应用程序,它包括在已知 wifi 网络进入或超出范围时执行操作。

例如,假设我家 wifi 网络的 SSIS 是“WifiHome”,我想发出“你刚刚离开家!”的通知。每当设备无法再检测到此特定网络时。(或者,当设备重新检测到来自该网络的信号时,“您刚刚进入家中”)。

我的问题是:是否可以在不经常轮询可用网络列表的情况下收听这些更改?

4

1 回答 1

13

您应该收听广播事件SCAN_RESULTS_AVAILABLE_ACTION。这将在每次 Wi-Fi 扫描完成时发送。当此类事件发生时,只需重新迭代可以通过 WifiManager 的getScanResults获得的扫描结果。

当 wi-fi 处于活动状态时,您将每隔几秒钟收到一次此广播。但是没有办法配置这个间隔,我的猜测是每个制造商都可能改变这个间隔。

您可以使用 WifiManager 的startScan手动触发 wi-fi 扫描。

于 2011-05-12T19:19:00.490 回答