android wifi扫描间隔,[RK3399][Android7.1] 调试笔记 --- WiFi扫描周期规则
Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
亮屏情况:
1. 在WiFi Settings界面,无论WiFi是否有连接,固定扫描时间间隔为10s。
2. 在非WiFi Settings界面,无论WiFi是否有连接,以2的倍数慢慢拉大扫描周期,最小为20s,最大为160s
灭屏情况:
1. 当开启了PNO并且WiFi已经连接时,扫描周期为160s.
2. 当开启了PNO并且WiFi没有连接但有保存的网络时,扫描周期为
其他情况:
当没有保存网络的时候,会以5Min的周期扫描。
各个模式对应流程:
屏亮时:
WiFi Setting界面
进入WiFi Setting界面时,会调用对应Activity的onResume()。
onResume ->WifiSettings.java
mWifiTracker.startTracking ->startTracking ->WifiTracker.java
resumeScanning ->mScanner.resume ->resume->sendEmptyMessage(MSG_SCAN); ->handleMessage ->//Scanner类
mWifiManager.startScan ->//调用WiFi Service开始扫描。
sendEmptyMessageDelayed(0, WIFI_RESCAN_INTERVAL_MS); //发送下次扫描时间间隔
WIFI_RESCAN_INTERVAL_MS默认定义为10秒。
// Combo scans can take 5-6s to complete - set to 10s.
private static final int WIFI_RESCAN_INTERVAL_MS = 10 * 1000;
非WiFi Setting界面
// Start a connectivity scan. The scan method is chosen according to
// the current screen state and WiFi state.
startConnectivityScan ->startPeriodicScan ->//mScreenOn为true
mPeriodicSingleScanInterval = PERIODIC_SCAN_INTERVAL_MS; //设置扫描间隔为20s
startPeriodicSingleScan ->mPeriodicSingleScanInterval *= 2; //每扫描一次,时间拉长一倍,最大不能超过MAX_PERIODIC_SCAN_INTERVAL_MS即160s
startSingleScan ->mScanner.startScan //开始扫描
屏灭时:
startConnectivityScan ->startConnectedPnoScan ->//screenOff以及WiFi已经有连接的情况
scanSettings.periodInMs = CONNECTED_PNO_SCAN_INTERVAL_MS; //设置扫描周期为160S
mScanner.startConnectedPnoScan ->startPnoScan
startDisconnectedPnoScan ->//screenOff以及WiFi没有连接但有保存的情况
scanSettings.periodInMs = DISCONNECTED_PNO_SCAN_INTERVAL_MS; //设置扫描周期为20S
mScanner.startDisconnectedPnoScan ->startPnoScan
没有保存网络的时候:
class DisconnectedState extends State {
/**
* If we have no networks saved, the supplicant stops doing the periodic scan.
* The scans are useful to notify the user of the presence of an open network.
* Note that these are not wake up scans.
*/
if (mNoNetworksPeriodicScan != 0 && !mP2pConnected.get()
&& mWifiConfigManager.getSavedNetworks().size() == 0) {
sendMessageDelayed(obtainMessage(CMD_NO_NETWORKS_PERIODIC_SCAN,
++mPeriodicScanToken, 0), mNoNetworksPeriodicScan);
}
}
mNoNetworksPeriodicScan的值被定义在 frameworks/base/core/res/res/values/config.xml中
300000
WiFi Setting和非Settings界面的扫描是同时不干预并存工作的,如下图:
其中35秒和75秒是非WiFi界面的周期扫描,间隔40秒,说明是第二次(20*2)扫描了。
其他的是在WiFi Settings界面扫描,每10秒一次。
参考:
Android wifi扫描机制(Android O)
android wifi扫描间隔,[RK3399][Android7.1] 调试笔记 --- WiFi扫描周期规则相关推荐
- android手机底噪,[RK3399][Android7.1] 调试笔记 --- Codec播放音乐会有底噪
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 背景: 移植完Codec RT5640之后,发现播放声音的时候底部有噪声. 用示波器测量到的左右声道波 ...
- [RK3399][Android7.1] 调试笔记 --- 系统默认时钟配置
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 分两个模块,一个是cpu,还有一个是pmu模块,这里只举例cpu,cpu又分在两个文件中定义 ...
- [RK3399][Android7.1] 调试笔记 --- I2S1工作输出是12MHz问题
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用I2S1通道,测量到的I2S MCLK是12MHz. 理论上应该是11.288MHz. 原 ...
- android 修改系统参数设置,2021-05-15 [RK3399][Android7.1] 调试笔记 ---显示参数动态设置接口...
系统环境: Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 接口代码所在位置为: /frameworks/base/core/java/android ...
- [RK3399][Android7.1] 调试笔记 --- sdcard守护进程启动位置
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 Board: Firefly-RK3399 之前版本sdcard守护进程都是放在init.rc中启动: ...
- [RK3399][Android7.1] 调试笔记 --- 使用ADC芯片ES7243遇到的问题
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 用途: ES7243模块用于环形麦克场景时,采集的是音频播放的声音,然后采到之后回送到CPU,和麦克录 ...
- [RK3399][Android7.1] 调试笔记 --- USB type-c插入后无法识别到
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 用update.img制作了一个升级包之后可以升级,但是无法识别到type-c. Log: 插 ...
- [RK3399][Android7.1] 调试笔记 --- DDR中clock相关配置
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 把这个拎出来说是因为在调试ddr default rate的时候对这部分有些误区. dmc中 ...
- [RK3399][Android7.1] 调试笔记 --- Audio codec时钟源从BCLK1获取
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 需求: 默认codec的clock source是从I2S1的mclk获取,由于I2S0和I2S1的m ...
最新文章
- 他十年前的书在前端圈人手一本,豆瓣评分9.1。现在,王者归来了!
- 因“薪水太高”被欠薪3个月、后又遭解雇?程序员愤怒反击!
- 【阿里云API】 阿里云API调用的若干说明
- Hadoop伪分布安装及简单使用
- 标准非STL容器 : bitset
- 有上下界网络流问题汇总
- 【架构师】【数据库基础】【笔记 01】快速了解数据库系统的重要概念02
- django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)
- CIT 中文笔记完整版
- GDAL读写矢量文件——C#
- OpenCV精进之路(四):图像处理——图片的缩放和图像金字塔
- tensorflow 的 Session Exception
- Android 利用SurfaceView进行图形绘制
- 毕设题目:Matlab优化充电
- cocos creator-js-虚拟摇杆
- ASCALL码表对照表 最全、最成体系表格 与对比
- win10关闭计算机休眠,小编教您win10怎么关闭休眠 win10关闭系统休眠方法
- 阿里安全SQL注入检测 前五名队伍分享
- 怎样学好高中数学学好高中数学的技巧
- 超声波传感器(CHx01) 学习笔记 Ⅲ - I2C读写操作