近期出的8.1第三方rom,很多机型都出现了电信卡频繁报错的问题,这可能是目前这些rom的通病,不过昨天有一位朋友在留言板里提供了这样的解决方案,大家可以参考下:
我没有电信卡,所以具体步骤和效果我也不清楚。
另外就是在酷安和各大论坛频繁看到的问题,老有人觉得原生安卓的wifi信号有个感叹号或者叉号是个bug,然后把问题描述为:虽然wifi信号提示不能联网,但实际上是可以上网的。
我就不批评这些不思考也不去百度搜索的人了。只要有正常的文化水平,会打开浏览器,就很容易搜索到这个问题的真相。
安卓5.0开始引入了检测网络是否正常连接的机制Captive Portal,在wifi或者移动网络打开时,通过一个网络请求,根据返回的状态码来判断网络状态,是204就是正常可以上网了,是200就可能处在一个需要登录验证才能上网的环境里,比如说校园网、公司员工身份验证的网、酒店房客验证的网等。
当然,如果连接超时或者连接不上,那么在WiFi和移动网络信号图标上或出现一个强迫症不能忍的图标,安卓5和6是叹号,安卓7和8改成一个叉了。
而在中国大陆地区,有个众所周知的问题,谷歌大部分的服务是不能直接访问的,而安卓默认的验证服务器地址,就是这样一个刚好不能访问的存在。
所以,你刷上原生安卓的时候,手机因为请求超时,认为你的网络是不通畅的,所以就会有个x或者!了。
国行的手机系统,一般厂商都已经修改了验证地址,所以不会遇到此问题。
知道了原理,就好解决了。
首先说不需要root的方案。
需要配置好adb环境的电脑,手机开启开发者选项并打开usb调试模式,这些都属于基础常识,不懂的自己百度。
1、禁用这个网络请求,只需要电脑连接手机后,通过一行命令解决:
adb shell settings put global captive_portal_detection_enabled 0
这个方法很粗暴,不是很好。带来的弊端就是,如果要连身份验证的wifi网络,就不会自动弹出让你输手机号或者用户名的页面。非要用这种方法解决,遇到此问题,可以尝试用浏览器随便打开任意网站,一般也是能手动触发身份验证的。
2、更改这个不能访问的服务器验证地址,安卓5和6是http的,我这里就不说了,现在玩机的大佬们都是安卓7.0起步了,地址是https协议。
通过一行命令解决:
adb shell settings put global captive_portal_server google.cn
或者
adb shell settings put global captive_portal_server captive.v2ex.co
这种是真正科学的办法。
再说个无需电脑,手机一键解决的方法,需root权限。
酷安搜索CaptiveMgr,原理和我上面讲的是一样的。
注意有些rom,可能开机的时候没同步好系统时间,那么https一样是无法访问的,把时间也一定要改成正常的,不然问题解决不了。