Android WifiManager - 停止扫描
Android WifiManager - stopScan
使用 Android 的 WifiManager 扫描可用的 Wifi 网络非常简单。
- 通过
context.getSystemService
获取WifiManager的句柄
- 创建意图
- 创建广播接收器
- 使用上述意图注册该接收者
- 等等
- 遍历扫描结果
我没有意识到的是,这个过程一旦开始就会一直滚动下去。据我所知,停止它的唯一方法是取消注册有问题的广播接收器。
- 这是停止扫描 wifi 网络的唯一且正确的方法吗?
- 如果是这样,真的没有必要发布类似 WifiManager.stopScan 的东西(无论如何它似乎都不存在)吗?
我假设该设备无论如何都会默认扫描 wifi 网络,因此稍后我可以使用相同的 WifiManger 句柄来获取可用网络的新列表。
正如您假设的那样,OS 无论如何都会跟踪 WiFi 事件,通过使用 WiFiManager,您只是订阅您的应用程序以接收某些类型的通知。
如果您的应用程序不再对它们感兴趣,您应该取消注册您的应用程序接收器,避免 WiFi 事件上不必要的上下文切换。
WifiManager 的参考不是很详细,但您可以在 ConenctivtyManager 参考中找到一些关于 OS 功能的提示:
https://developer.android.com/reference/android/net/ConnectivityManager.html
使用 Android 的 WifiManager 扫描可用的 Wifi 网络非常简单。
- 通过
context.getSystemService
获取WifiManager的句柄
- 创建意图
- 创建广播接收器
- 使用上述意图注册该接收者
- 等等
- 遍历扫描结果
我没有意识到的是,这个过程一旦开始就会一直滚动下去。据我所知,停止它的唯一方法是取消注册有问题的广播接收器。
- 这是停止扫描 wifi 网络的唯一且正确的方法吗?
- 如果是这样,真的没有必要发布类似 WifiManager.stopScan 的东西(无论如何它似乎都不存在)吗?
我假设该设备无论如何都会默认扫描 wifi 网络,因此稍后我可以使用相同的 WifiManger 句柄来获取可用网络的新列表。
正如您假设的那样,OS 无论如何都会跟踪 WiFi 事件,通过使用 WiFiManager,您只是订阅您的应用程序以接收某些类型的通知。
如果您的应用程序不再对它们感兴趣,您应该取消注册您的应用程序接收器,避免 WiFi 事件上不必要的上下文切换。
WifiManager 的参考不是很详细,但您可以在 ConenctivtyManager 参考中找到一些关于 OS 功能的提示: https://developer.android.com/reference/android/net/ConnectivityManager.html