【Android中如何除去网络感叹号】宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述Android中如何除去网络感叹号相关的知识,希望能为你提供帮助。
文和大家分享的是不同版本android开发中,除去网络感叹号的方法,希望通过本文对大家有所帮助。
貌似自从android 5.0 Lollipop开始,Google就增加了一个Portal Server门户服务器的连通性测试,大意是为了在连接到需要验证的Public Wi-Fi时,能根据连通测试的情况自动弹出Wi-Fi登陆提示页面,但是默认的地址是 [国内不存在的] gstatic.com 的,鉴于国内的奇葩环境,不管Wi-Fi是不是好的,都会被认为网络是不通的显示一个感叹号提示(Android 7.0 Nougat改成了小叉叉)……
注意:本文提到的方法都无需root,但是需要adb工具并开启开发者选项。
Android 5.0 Lollipop &
Android 6.0 Marshmallow的解决方法
在Android 5.0 Lollipop &
Android 6.0 Marshmallow时,根据 小狐狸 的 分析 ,可以用以下两个方法解决
· 方法一:直接禁用Portal Server的连通性测试
在开启了开发者选项的情况下,连接电脑,安装最新版的adb工具,然后执行以下命令:
adbshell "settings put global captive_portal_detection_enabled 0"
然后飞行模式一下,就没有了,但是有个弊端,就是如果你连接公共Wifi需要验证的时候,会发现不会自动弹出验证网页,需要自己打开浏览器访问任意网页才行。
· 方法二:更改默认的Portal Server地址
网上有一些热心人士提供了在国内可正常连接的Portal Server,包括 小狐狸 、 v2ex、 g.cn 等,我个人比较喜欢g.cn的,同样在adb下输入以下命令可以达到修改Portal Server的目的:
adbshell "settings put global captive_portal_server g.cn"
或
adbshell "settings put global captive_portal_server captive.v2ex.co"
方法二我一直都在用,但是直到Android 7 Nougat这个办法就失效了……如果你用了方法一,应该不用往下看,以下都是基于方法二的调整。
Android 7.0 Nougat的解决方法
这个时候,之前的方法失效了,于是遍寻网上,后来有人发现是验证方法改成HTTPS了,而之前是HTTP的,于是热心人士的服务器纷纷失效了,因此 v2ex还升级了之前提供的服务 ,开出了一个子域名专门做Portal Server,并同时提供HTTP和HTTPS两种连接方式。同样可用的热心人士服务器有Google.cn …… 如果你之前用的就是v2ex的,那么在v2升级后,你就检测就会恢复了,不需要再修改设置。
在Android 7 Nougat仍然可以通过禁用检测的方式来解决这个问题,但我更喜欢无损解决,所以,把上面方法二的服务器换一下就行:
adbshell "settings put global captive_portal_server www.google.cn"
Android 7.1.1 Nougat的解决方法
到这个版本,不知道为什么HTTPS的服务器也歇菜了,真是命运多舛,我的Nexus 5X根本就不想unlock和root,所以继续找办法,直到有人发现这次不管怎么改,都会连接到 gstatic.com 这个米上面,于是开始有人通过改hosts的方法来解决,但是我不想root……
于是刚才又 找到一个方法 ,这次需要直接修改Portal Server的URL了……因为不会在末尾自动加 /generate_204 了……
请执行以下命令
adbshell "settings put global captive_portal_https_url https://www.google.cn/generate_204"
或
adbshell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204"
目前来看,我刚升级到7.1.1的Nexus 5x是解决了这个问题了,不知道下次版本升级又会发生什么……
P.S:个人极力推荐有各种科学上网需求的童鞋,完全可以买一个Google Project Fi的SIM卡来日常用,天然科学上网,自带米国手机号,无障碍平滑激活Google Now/Location等服务,等有空写写Fi的使用体会。
来源:Mr. 21
推荐阅读
- Android开发之微信分享到好友,朋友圈
- Android Multimedia框架总结(二十三)MediaCodec补充及MediaMuxer引入(附案例)
- Android通用脱壳工具DexHunter的原理分析和使用说明
- Android: TODO 应用交互的两种实现方法(Behavior)
- Android开发学习—— activity
- Android View 的事件体系
- Android getAttributeIntValue()详解-霞辉
- 浅谈Android样式开发之layer-list
- Python OpenCV cv2.rectangle()方法绘制矩形示例