本帖最后由 果不语 于 2015-4-14 07:04 编辑
本帖从Z3区转过来,Z2同样适用本教程,Z3区作者泰国的香蕉 。
首先方法转自 小狐狸 https://www.noisyfox.cn/45.html
问题是由@Gedeon7 发现原因,并且发出解决方法http://tieba.baidu.com/p/3683181927
我只是测试@Gedeon7 发出的解决方法是否能解决网络待机耗电的问题。测试过程http://tieba.baidu.com/p/3684712567
这个方法所有安卓5.0及以上设备都是通用的。信号旁边出现感叹号也是用这个方法解决。
简要来说就是,如果该网络是VP.N,那么直接使用这个网络进行连接,否则调用isCaptivePortal() 函数进行网络状况的判定,再根据判定结果决定是否选用此网络。 而罪魁祸首就是这个 isCaptivePortal() 函数,它会访问clients3.google.com/generate_204 并根据返回结果来判断网络联通状况。正是这个go.ogle的网址被墙导致安卓没有办法评估网络,这样就导致了那个蛋碎的感叹号一直存在,以及wifi用着用着突然自动连回数据连接了。
想直接把 isCaptivePortal() 函数给屏.蔽掉,让他一直返回成功,但是看了下google的代码,发现这个函数是非常有用处的,为什么呢?这个函数有个非常重要的作用,那就是判断当前网络是否需要登录。 想必大家都连接过那些需要验证才能使用的wifi热点吧,当你们连接这些热点的时候,android会自动弹出提示询问你是否需要登录。而这个功能就是依靠了isCaptivePortal() 这个函数才得以实现
这是来自网友的图片,网络待机的耗电量,我的没截图...............
2015-4-13 10:34 上传
下载附件 (35.33 KB)
这是今天使用一天后,网络待机的耗电量,我使用的是www.iwch.me设置为服务器
2015-4-13 10:34 上传
下载附件 (33.98 KB)
解决方法(无需root): 1.完全屏.蔽网络检查功能,最简单快速,但是就没有办法提示wifi登录: adb shell "settings put global captive_portal_detection_enabled 0" 2.用国内的服务器替换掉google的服务器: adb shell "settings put global captive_portal_server xn--yet824cpd.xn--fiqs8s" 这个服务器是我小狐狸建的,在服务器上写了个简单的204页面,网址是 http://xn--yet824cpd.xn--fiqs8s/generate_204 只要用这个网址替换掉google的网址,就可以正常访问并检测网络状态了。不过由于本人的服务器速度并不快,所以感叹号还是会显示一小会儿的,不过应该很快就会消失。 如果你对本站提供的服务速度不满意,可以在文末找到网友提供的其它服务地址。
经过靠谱的确认,改修改方式具有持久性,重启依旧有效,除非刷机或者清除数据。
一键设置工具(需要root) 锵锵锵!由于有些人不太熟悉adb之类的操作,因此就做了一个小工具方便大家直接在手机上设置! 2015-4-13 10:34 上传
下载附件 (31.8 KB)
一些其它服务网址 我会尽我所能提供长期有效的服务,但是由于本站服务器不是很快,而且网络状况有时候会不稳定,因此无法保证100%可靠的服务。不过有一些热心网友提供了其它服务网址,速度和稳定性或许会比本站要好。故在此特别列出供大家选用。如果给提供者带来不便之处请回复告知,我会及时删除。
by lkebin: liukebin.sinaapp.com 架设于国内SAE服务器,国内访问速度快,据lkebin称是永久有效
虽然g.cn和www.265.com这两个谷歌服务器可以用,但是不建议用,因为GFW原因导致极其不稳定,经常有时候打不开。打不开的时候就会导致网络待机耗电变高
一键设置工具下载
|