Android系统WIFI显示已保存但不会自动重连
问题描述
使用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显示已保存但不会自动重连相关推荐
- 安卓修改wifi已停用_手机连不上wifi显示已保存怎么回事【原因介绍】
问:为什么手机连不上wifi显示已保存?手机在连接WiFi的时候,WiFi显示已保存,手机连接不上wifi信号.请问这是什么原因引起的,应该怎么解决这个问题. 答:如果手机连接wifi时,显示已保存, ...
- Android Q wifi已连接但显示“已保存”无法上网
Android Q wifi已连接但显示"已保存"无法上网 连接国内wifi之后,wifi连接界面显示已保存,但是systemUI会提示当前网络不可用,是否要保持连接的弹框. 最后 ...
- 路由器有一个android设备连接不上,路由器手机显示已保存连不上怎么办
如今是网络的大时代,不管是生活还是工作中我们几乎都会接触到网络,不止是电脑,像一些别的智能设备也需要连接网络,例如手机.平板等,而网络最直接的连接方式就是使用路由器,那么你知道路由器手机显示已保存连不 ...
- Win10 系统WLAN 显示已关闭,图标是红叉 ,怎么办?
Win10 系统WLAN 显示已关闭,图标是红叉 ,怎么办? 第一步:Fn+F几(根据电脑而定)快捷键开启无线 第二步:更改适配器设置中是否启用无线 还是不好使 第三步:控制面板打开服务 确认如下5个 ...
- Android系统默认显示电池电量百分比
Android系统默认显示电池电量百分比 整理一下修该需求时候遇到的问题以及进行修改的思路: 需求:Android 11 让系统默认显示电池电量百分比 整理一下修该需求时候遇到的问题以及进行修改的思路 ...
- android系统 wifi,Android系统wifi分析-手动连接过程
1.已保存显示时间较长 16:59:50~16:59:55 原因是,刚好系统保存热点信息里边没有该热点:没有匹配上: 07-16 16:59:51.017 1318 2154 D WifiServic ...
- Android小知识-了解下Android系统的显示原理
本平台的文章更新会有延迟,大家可以关注微信公众号-顾林海,包括年底前会更新kotlin由浅入深系列教程,目前计划在微信公众号进行首发,如果大家想获取最新教程,请关注微信公众 在Android系统中应用 ...
- android系统平台显示驱动开发简要:LCD基本原理篇『一』
平台信息: 内核:linux3.4.39 系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新 ...
- windows 10 系统 airpods 显示已连接但是无法播放音频
问题描述: 1.windows 10 系统 airpods pro显示已连接但是无法播放音频 2.蓝牙和设置页面的airpods pro 只有已配对,没有已连接或则手动连接的按钮 现象图片: 归类到其 ...
最新文章
- android 弹出fragment,Android中ViewPager获取当前显示的Fragment
- 【每日一算法】移除元素
- Linux之Shell脚本的条件判断和函数
- 要想保研成功!寒假就干这几件事~
- 按下enter键禁止页面刷新
- jenkins使用哪个版本号_Linux下安装JDK及jenkins
- 【计算机网络】复习荟萃(四)
- 不需要mysql的php博客_不用数据库,做留言板(PHP)
- hdu-1823 Luck and Love
- 常用传感器讲解九--雨滴传感器
- 23.24复合求积公式
- 设备接入ONENET(2)STM32 + ESP8266(MQTT协议)接入云 :使用 OneNET 官方麒麟座开发板例程
- tampermonkey自动化学习(持续更新~)
- 计算机在维氏硬度的应用,华银显微维氏硬度计HVS-1000A使用方法
- 首都师范大学计算机技术复试分数线,首都师范大学2019年考研复试分数线已公布...
- 犯罪分子检测--Eye in the Sky: Real-time Drone Surveillance System for Violent Individuals
- 完整版MYSQL 使用基础 - 这么用就对了
- 利用Python实现敲击木鱼积累功德效果 功德+N
- 打光在绘画中的重要性有多重要?
- 多仓库移动机器人时空约束分层调度策略