问题描述

使用Android设备,已经连接过的WIFI不会自动重连,且显示已保存

问题分析

显示已保存说明连接的WIFI信息已经保存,Android 11连接的WIFI信息保存在该文件/data/misc/apexdata/com.android/wifi/WifiConfigStore.xml,查看发现不能自动重连的WIFI会有NETWORK_SELECTION_PERMANENTLY_DISABLED此项配置,正常的为NETWORK_SELECTION_ENABLED

<string name="SelectionStatus">NETWORK_SELECTION_PERMANENTLY_DISABLED</string>
<string name="DisableReason">NETWORK_SELECTION_DISABLED_NO_INTERNET_PERMANENT</string>

正常的:

<string name="SelectionStatus">NETWORK_SELECTION_ENABLED</string>
<string name="DisableReason">NETWORK_SELECTION_ENABLE</string>

经分析:此版本的WIFI由于没有通过校验会显示网络连接受限,导致保存连接的WiFi的信息有此配置,所以不会自动连接,只要解决显示网络连接受限的问题,即修改HTTPS校验网址可解决WIFI不自动重连的问题。

相关源码

保存的WIFI信息文件示例
frameworks/base/wifi/java/android/net/wifi/migration_samples/

WIFI信息保存路径
AOSP Path in Android 10: /data/misc/wifi/WifiConfigStore.xml
AOSP Path in Android 11: /data/misc/apexdata/com.android/wifi/WifiConfigStore.xml

自动连接机制
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConnectivityManager.java
网络评估:handleScanResults
是否网络选择:isNetworkSelectionNeeded
扫描结果评估:SavedNetworkEvaluator

WIFI保存
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiConfigStore.java
关键方法:
loadFromStore()
createFile()
read()
write()
StoreData()

拓展

网上查到的关于断电时WIFI学习未来得及保存下来时,一般WIFI信息的保存是在空闲时间,一般不会立即写入flash中,也会导致不自动重连,解决方案是加个sync

frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.javaprivate void  fileSync(){Runtime runtime = Runtime.getRuntime();try {runtime.exec("sync");} catch (IOException e) {e.printStackTrace();Log.e(TAG, "fileSync");
}public boolean saveConfig() {boolean ret;ret = doBooleanCommand("SAVE_CONFIG");//add fileSyncfileSync();return ret;
}

Android系统WIFI显示已保存但不会自动重连相关推荐

  1. 安卓修改wifi已停用_手机连不上wifi显示已保存怎么回事【原因介绍】

    问:为什么手机连不上wifi显示已保存?手机在连接WiFi的时候,WiFi显示已保存,手机连接不上wifi信号.请问这是什么原因引起的,应该怎么解决这个问题. 答:如果手机连接wifi时,显示已保存, ...

  2. Android Q wifi已连接但显示“已保存”无法上网

    Android Q wifi已连接但显示"已保存"无法上网 连接国内wifi之后,wifi连接界面显示已保存,但是systemUI会提示当前网络不可用,是否要保持连接的弹框. 最后 ...

  3. 路由器有一个android设备连接不上,路由器手机显示已保存连不上怎么办

    如今是网络的大时代,不管是生活还是工作中我们几乎都会接触到网络,不止是电脑,像一些别的智能设备也需要连接网络,例如手机.平板等,而网络最直接的连接方式就是使用路由器,那么你知道路由器手机显示已保存连不 ...

  4. Win10 系统WLAN 显示已关闭,图标是红叉 ,怎么办?

    Win10 系统WLAN 显示已关闭,图标是红叉 ,怎么办? 第一步:Fn+F几(根据电脑而定)快捷键开启无线 第二步:更改适配器设置中是否启用无线 还是不好使 第三步:控制面板打开服务 确认如下5个 ...

  5. Android系统默认显示电池电量百分比

    Android系统默认显示电池电量百分比 整理一下修该需求时候遇到的问题以及进行修改的思路: 需求:Android 11 让系统默认显示电池电量百分比 整理一下修该需求时候遇到的问题以及进行修改的思路 ...

  6. android系统 wifi,Android系统wifi分析-手动连接过程

    1.已保存显示时间较长 16:59:50~16:59:55 原因是,刚好系统保存热点信息里边没有该热点:没有匹配上: 07-16 16:59:51.017 1318 2154 D WifiServic ...

  7. Android小知识-了解下Android系统的显示原理

    本平台的文章更新会有延迟,大家可以关注微信公众号-顾林海,包括年底前会更新kotlin由浅入深系列教程,目前计划在微信公众号进行首发,如果大家想获取最新教程,请关注微信公众 在Android系统中应用 ...

  8. android系统平台显示驱动开发简要:LCD基本原理篇『一』

    平台信息: 内核:linux3.4.39 系统:android4.4  平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新 ...

  9. windows 10 系统 airpods 显示已连接但是无法播放音频

    问题描述: 1.windows 10 系统 airpods pro显示已连接但是无法播放音频 2.蓝牙和设置页面的airpods pro 只有已配对,没有已连接或则手动连接的按钮 现象图片: 归类到其 ...

最新文章

  1. android 弹出fragment,Android中ViewPager获取当前显示的Fragment
  2. 【每日一算法】移除元素
  3. Linux之Shell脚本的条件判断和函数
  4. 要想保研成功!寒假就干这几件事~
  5. 按下enter键禁止页面刷新
  6. jenkins使用哪个版本号_Linux下安装JDK及jenkins
  7. 【计算机网络】复习荟萃(四)
  8. 不需要mysql的php博客_不用数据库,做留言板(PHP)
  9. hdu-1823 Luck and Love
  10. 常用传感器讲解九--雨滴传感器
  11. 23.24复合求积公式
  12. 设备接入ONENET(2)STM32 + ESP8266(MQTT协议)接入云 :使用 OneNET 官方麒麟座开发板例程
  13. tampermonkey自动化学习(持续更新~)
  14. 计算机在维氏硬度的应用,华银显微维氏硬度计HVS-1000A使用方法
  15. 首都师范大学计算机技术复试分数线,首都师范大学2019年考研复试分数线已公布...
  16. 犯罪分子检测--Eye in the Sky: Real-time Drone Surveillance System for Violent Individuals
  17. 完整版MYSQL 使用基础 - 这么用就对了
  18. 利用Python实现敲击木鱼积累功德效果 功德+N
  19. 打光在绘画中的重要性有多重要?
  20. 多仓库移动机器人时空约束分层调度策略

热门文章

  1. excel导入错误:外部表不是预期格式
  2. Pytorch入门之张量tensor
  3. xBIM 基础06 将STEP物理文件转换为XML
  4. 万字长文:出海网赚的中场思考
  5. mac下添加sublime text打开快捷键 subl
  6. Android OTA差分包制作(RK平台)
  7. 一、授权(公众号授权给第三方/用户授权给公众号)
  8. 这一次,彻底搞懂箭头函数
  9. 简历这样改,才能拿到面试机会!
  10. 2023年全国最新工会考试精选真题及答案11