android 系统扫描 wifi 的频率
How often does android system scan wifi
Android 系统扫描 Wi-Fi 的频率如何?
以下2种情况:
当设备连接到网络时
或
当设备未连接到任何网络时。
它与 android OS 版本不同吗?
有没有人知道这个信息?
Android 系统扫描 wifi :
1. 如果设备启用了 wifi 并且设备未连接到任何网络,它会扫描可用网络
2. 如果设备已连接到网络,则系统将根据用户请求扫描可用网络(即当用户单击扫描按钮时)
WiFi 扫描基本上取决于硬件制造商 - 可能还有一些用户设置和其他 运行 的应用程序(其他应用程序可能会请求扫描 WiFi 网络)。所以确实没有 "standard scan time" 用于 WiFi。
这是一个很好的参考,它讨论了 WiFI 扫描之间的间隔(本质上是说您应该与用户核实,看看他们是否需要 "scan as often as possible" 选项,或者其他...)
What interval should I use between each WiFi scan on Android?
除非您的应用是面向开发人员的,否则您可能应该使用衰减算法,例如在 5 秒时检查,然后是 10、20、40、80、160 等,直到您在可接受的时间范围内达到最大值 (例如 5 分钟 - 300 秒;或 1 小时 - 3600 秒)。然后还监视其他事件,例如 phone sleep/wake 或应用程序启动。使用这些进行 WiFi 轮询 - 并尝试连接并重新启动衰减算法方法。
根据我在 LG G2 (Android 5.0.2) 上的实验,在以下情况下会扫描 wifi :
- 当定位功能被禁用时
- 每次从睡眠模式中醒来
- 激活 wifi 时(手动或以编程方式)
- 启用 wifi 但设备未连接到 wifi 网络时大约每 2 分钟一次
- 启用位置功能时:这取决于注册到
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, minTime, ...)
的应用程序。当指定 minTime
为 0 毫秒时,网络扫描每 20 秒进行一次。
App "Wifi Scan Interval" reveals that minimum/maximum/average wifi scan frequency 因 phone 制造商和型号而异。但这可能是因为安装的应用程序。基于此,我猜测上述规则对于其他 phones 可能有所不同。
Android 系统多久扫描一次 Wi-Fi?
这取决于 和 在 Android OS 版本上的应用程序实现(所以你的第二个问题的答案是肯定的)。
让我们详细了解一下:
您可以使用 WifiManager
的实例通过 startScan()
方法开始您的 wifi 扫描。那可以让你开始所有你想要的扫描,非常快速地耗尽电池。
就是这个原因从Android8.0(API26)开始有扫描频率限制
The following limitations apply to the frequency of scans using
WifiManager.startScan().
Android 8.0 and Android 8.1:
Each background app can scan one time in a 30-minute period.
Android 9 and later:
Each foreground app can scan four times in a 2-minute period. This
allows for a burst of scans in a short time.
All background apps combined can scan one time in a 30-minute period.
Android 系统扫描 Wi-Fi 的频率如何?
以下2种情况:
当设备连接到网络时
或
当设备未连接到任何网络时。 它与 android OS 版本不同吗?
有没有人知道这个信息?
Android 系统扫描 wifi :
1. 如果设备启用了 wifi 并且设备未连接到任何网络,它会扫描可用网络
2. 如果设备已连接到网络,则系统将根据用户请求扫描可用网络(即当用户单击扫描按钮时)
WiFi 扫描基本上取决于硬件制造商 - 可能还有一些用户设置和其他 运行 的应用程序(其他应用程序可能会请求扫描 WiFi 网络)。所以确实没有 "standard scan time" 用于 WiFi。
这是一个很好的参考,它讨论了 WiFI 扫描之间的间隔(本质上是说您应该与用户核实,看看他们是否需要 "scan as often as possible" 选项,或者其他...) What interval should I use between each WiFi scan on Android?
除非您的应用是面向开发人员的,否则您可能应该使用衰减算法,例如在 5 秒时检查,然后是 10、20、40、80、160 等,直到您在可接受的时间范围内达到最大值 (例如 5 分钟 - 300 秒;或 1 小时 - 3600 秒)。然后还监视其他事件,例如 phone sleep/wake 或应用程序启动。使用这些进行 WiFi 轮询 - 并尝试连接并重新启动衰减算法方法。
根据我在 LG G2 (Android 5.0.2) 上的实验,在以下情况下会扫描 wifi :
- 当定位功能被禁用时
- 每次从睡眠模式中醒来
- 激活 wifi 时(手动或以编程方式)
- 启用 wifi 但设备未连接到 wifi 网络时大约每 2 分钟一次
- 启用位置功能时:这取决于注册到
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, minTime, ...)
的应用程序。当指定minTime
为 0 毫秒时,网络扫描每 20 秒进行一次。
App "Wifi Scan Interval" reveals that minimum/maximum/average wifi scan frequency 因 phone 制造商和型号而异。但这可能是因为安装的应用程序。基于此,我猜测上述规则对于其他 phones 可能有所不同。
Android 系统多久扫描一次 Wi-Fi?
这取决于 和 在 Android OS 版本上的应用程序实现(所以你的第二个问题的答案是肯定的)。
让我们详细了解一下:
您可以使用 WifiManager
的实例通过 startScan()
方法开始您的 wifi 扫描。那可以让你开始所有你想要的扫描,非常快速地耗尽电池。
就是这个原因从Android8.0(API26)开始有扫描频率限制
The following limitations apply to the frequency of scans using WifiManager.startScan().
Android 8.0 and Android 8.1:
Each background app can scan one time in a 30-minute period.
Android 9 and later:
Each foreground app can scan four times in a 2-minute period. This allows for a burst of scans in a short time.
All background apps combined can scan one time in a 30-minute period.