问题现象和背景

1.Wifi关闭

2. 设置->网络和互联网->WLAN->WLAN偏好设置->自动开启WLAN打开(前提要求打开位置信息中wlan随时扫描)

3. 预期结果:扫描到之前连接过的热点后,wifi会自动打开

实际结果:wifi未能自动打开

原因分析:

WakeupController中注册ScanListener,监听并处理随时扫描上报的scan result,上报的扫描结果符合判定要求后,会enablewifi。

378     private void handleScanResults(Collection<ScanResult>scanResults) {
379          if (!isEnabledAndReady()) {
380              Log.d(TAG, "Attempted to handleScanResults while not enabled");
381              return;
382          }
383
384          // only count scan as handled if isEnabledAndReady
385          mNumScansHandled++;
386          if (mVerboseLoggingEnabled) {
387              Log.d(TAG, "Incoming scan #" + mNumScansHandled);
388          }
389
390          // need to show notification here in case user turns phone on while wifi is off
391          mWakeupOnboarding.maybeShowNotification();
392
393          // filter out unknown networks
394          Set<ScanResultMatchInfo>goodNetworks = getGoodSavedNetworksAndSuggestions();
395          Set<ScanResultMatchInfo>matchInfos = toMatchInfos(scanResults);
396          matchInfos.retainAll(goodNetworks);
397
398          mWakeupLock.update(matchInfos);
399          if (!mWakeupLock.isUnlocked()) {
400              return;
401          }
402
403          ScanResultnetwork = mWakeupEvaluator.findViableNetwork(scanResults, goodNetworks);
404
405          if (network != null) {
406              Log.d(TAG, "Enabling wifi for network: " + network.SSID);
407              enableWifi();
408          }
409      }

之所以一直没有触发,是因为WakeupController中只是注册了scanlistener,并没有发起scan的动作,所以不会有scan result上报

调试发现,当上层有应用或者系统网络定位发起wifi scan请求后,芯片才会执行scan动作并上报,WakeupController接收扫描结果并判断,符合要求后在handleScanResults中enablewifi
复测方法:
安装wifiservice apk,保证上层能成功发起scan动作后,可成功自动打开wifi
相关log:
07:32:46.591639  1085  7181 I WifiService: setWifiEnabled package=com.android.settings uid=1000 enable=false----关闭wlfi
07:37:21.682052  1085  1128 I WifiService: startScan uid=10136-----com.jhj.dev.wifi apk发起扫描
07:37:21.685222  1085  1314 V WifiScanRequestProxy: Foreground scan app request [10136, com.jhj.dev.wifi]
07:37:21.685321  1085  1314 I WifiScanRequestProxy: Scan request from com.jhj.dev.wifi throttled
07:37:25.962909  1085  1314 D WakeupLock: Found network in lock: "iPhone"----此时扫描到之前连接过的热点,但是被lock住,未释放(有10mins的lock time,也就是距离上次连接10分钟内,不可自动打开)
07:41:05.492517  1085  1314 D WakeupLock: Removed network from lock: "iPhone"-----此时到达unlock time
07:43:05.719132  1085  1314 D WakeupController: Enabling wifi for network: iPhone----开始打开wifi
07:43:07.930226  1085  1314 D SupplicantStaIfaceHal: connectToNetwork "iPhone"WPA_PSK----主动连接
07:43:08.183816  1792 12387 D DhcpClient: Received packet: 66:b6:ef:9b:29:fa ACK: your new IP /172.20.10.2, netmask /255.255.255.240, gateways [/172.20.10.1] DNS servers: /172.20.10.1 , lease time 85536---获取dhcp

WLAN无法自动打开问题分析相关推荐

  1. ajax请求成功之后,自动打开一个空白页面,并打印出了返回内容

    一.问题描述 ajax请求成功之后,自动打开一个空白页面,并打印出了返回内容,返回值是规定的success内容:{code: "200", msg: "请求成功" ...

  2. phpstorm 不能自动打开上次的历史文件

    问题产生的原因:可能是电脑非正常关机,导致phpstrom 无法正常关闭. 一开始我以为是配置上那里出现了问题,所以直接就把配置删除了,然后生成了默认配置.发现还是无法解决问题.然后一个个配置查阅过去 ...

  3. Window10总是自动打开网络代理的解决方案法

    文章目录 1.问题分析 2. 解决方案 2.1 选择防护中心 2.2 开启自定义防护 2.3 设定防护规则 3. 效果展示 1.问题分析 就是这货,总是自动打开导致无法上网. 2. 解决方案 下载杀毒 ...

  4. 轻松实现网页中通过链接跳转到QQ聊天界面,通过链接加QQ群,自动打开聊天对话框等等,包含电脑版和手机版的实现,示例部分Android和iOS的代码

    通过链接打开对话框: 打开qq聊天窗口的方法 <a href="http://wpa.qq.com/msgrd?v=3&uin=1450612626&site=qq&a ...

  5. win7计算机右键属性桌面进程重启,Win764位系统电脑自动重启的分析与解决步骤...

    Win764位系统电脑自动重启的分析与解决步骤 系统失败导致自动重启 1.在桌面上"我的电脑"鼠标右键,弹出的快捷菜单单击"属性"命令. 2.打开"系 ...

  6. 根据课表自动打开网课上课平台——Python实现

    前言 自疫情爆发以来啊,对大学牲来讲,上网课已基本成为司空见惯的事情了,在看的各位谁还没上过个网课呢.抛开事实不谈,上网课的效率还是比较高的(手动狗头). 那有些游手好闲,啊不对,是热爱学习的小可爱( ...

  7. python生成表格并显示在浏览器_python自动打开浏览器下载zip并提取内容写入excel...

    前言 佬们轻喷,里面有些代码都是现学现写的,一些细节没处理好的地方还请指出来~~~ 首先贴上效果图:有些部分我没有放进来,比如浏览器的启动,但我详细聪明的你们那个玩意肯定一学就会.有些东西我没放进来 ...

  8. 自动打开国航APP并签到

    分析需求 1.需求 国航APP签到可以送里程,写一个Demo自动打开国航,并且跳转签到页面,自动签到 2. 主要步骤 启动国航APP 自动点击:(1)点击底部button跳转到签到页面:(2)点击&q ...

  9. python 自动抓取分析房价数据——安居客版

    引言 中秋回家,顺便想将家里闲置的房子卖出去.第一次卖房,没经验,于是决定委托给中介.中介要我定个价.最近几年,房价是涨了不少,但是长期在外,也不了解行情.真要定个价,心里还没个数.网上零零散散看了下 ...

最新文章

  1. JVM经常使用的调优參数
  2. 三个单词说的英语口语
  3. echarts - 使用echarts过程中遇到的问题(pending...)
  4. 大数据 java 代码示例_功能Java示例 第7部分–将失败也视为数据
  5. 解决git关联的的文件颜色、小图标
  6. 汉子编码比字母编码长_字母/博客作者编码问题(使用动态编程)
  7. 模拟导入系统通讯录5000+手机号 校验大量数据处理
  8. [前端]多线程在前端的应用——Javascript的线程
  9. 【Kafka】kafka 脚本kafka-configs.sh用法解析
  10. 查看Windows系统的开机、关机时间、开机时长等信息
  11. jQuery图片水平滑动延迟加载动画
  12. pytorch 测试每一类_2D UNet++ VGGBlock脑胶质瘤分割BraTs + Pytorch实现
  13. 数据中心局部高热处理方案
  14. 借助winrats软件实现BEKK模型
  15. GIS中坐标系的基本概念
  16. 生物信息学研究生课程-1
  17. 苹果商店上架流程_苹果app上架流程
  18. 钉钉微应用H5的调试方法
  19. Python网速监控
  20. 扬州大学c语言作业,扬州大学c语言0600706期末试题

热门文章

  1. 使用weibo js,新浪微博三方登陆,帐号绑定。
  2. java毕业设计橱柜定制系统Mybatis+系统+数据库+调试部署
  3. C#输出心形图案(一)
  4. StringTokenizer用法
  5. Sandboxie-沙箱软件-Plus版本(Qt)-主框架程序-SandMan.exe-创建语言文件-tr-Qt-语言国际化
  6. 约好了?李彦宏坐高铁、马化腾坐公交
  7. C语言求最大公约数代码
  8. 高效清洗即洗即穿!买洗烘一体洗衣机注意这几点
  9. 2022安全员-C证培训试题模拟考试平台操作
  10. 键盘监听keypress、keydown、keyup