【问题标题】:Is there any way to get notified when known SSIS wifi networks get in/out of range?当已知的 SSIS wifi 网络进入/超出范围时,有什么方法可以得到通知?
【发布时间】:2011-08-24 09:39:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: android notifications android-wifi wifimanager


    【解决方案1】:

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

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

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

    【讨论】:

    • 但是如果我不想手动扫描,我应该多久收到一次这个广播? (以秒为单位,比如说)
    • 当 wi-fi 处于活动状态时,您会每隔几秒收到一次此广播。但是没有办法配置这个间隔,我的猜测是每个制造商都可能改变这个间隔。我建议引入一个设置 X -“重新扫描之间的最大延迟”。如果您在 X 秒内没有收到任何扫描结果,您将强制手动重新扫描。
    • 好的。就是这样。最后一个问题:“当前网络断开”是否有更具体的事件?
    • 你应该听NETWORK_STATE_CHANGED_ACTION。
    猜你喜欢
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2013-10-20
    • 2012-04-19
    • 2014-04-19
    相关资源
    最近更新 更多