Android系统连接WIFI显示网络连接受限

Android系统连接WIFI显示网络连接受限,第1张

概述问题描述使用Android设备打开设置,选择WIFI输入正确密码连接,会显示已连接,无网络,然后变成网络连接受限,实际可以使用此WIFI进行上网。问题分析异常LogDNetworkMonitor/100:PROBE_DNSwww.google.com107msOK104.244.46.85DNetworkMonitor/100:PROBE_DNSconnectivity 问题描述

使用AndroID设备打开设置,选择WIFI输入正确密码连接,会显示已连接,无网络,然后变成网络连接受限,实际可以使用此WIFI进行上网。

问题分析

异常Log

D NetworkMonitor/100: PROBE_DNS www.Google.com 107ms OK 104.244.46.85D NetworkMonitor/100: PROBE_DNS connectivitycheck.gstatic.com 118ms OK 203.208.50.66D NetworkMonitor/100: PROBE_http http://connectivitycheck.gstatic.com/generate_204 time=35ms ret=302 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[http/1.0 302 Moved Temporarily], Allow=[GET,POST,head], Location=[http://10.10.1.2:8080/cn/index.HTML], MIME-Version=[1.0], Pragma=[No-Cache], Server=[AP Server 1.0], X-AndroID-Received-Millis=[1615220820212], X-AndroID-Response-Source=[NETWORK 302], X-AndroID-Selected-Protocol=[http/1.0], X-AndroID-Sent-Millis=[1615220820196]}D NetworkMonitor/100: PROBE_httpS https://www.Google.com/generate_204 Probe Failed with exception javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValIDatorException: Trust anchor for certification path not found.D NetworkMonitor/100: isCaptivePortal: isSuccessful()=false isPortal()=true RedirectUrl=http://10.10.1.2:8080/cn/index.HTML isPartialConnectivity()=false Time=172ms

从Log中可以看出来,连接WIFI会进行网络的校验,从而判断是否可用,http校验成功,但是httpS校验失败,因此会显示网络连接受限,其连接过程中会出现短暂的已连接,无网络是正常现象。httpS校验的网址https://www.Google.com/generate_204,由于在国内无法访问,所以会校验失败,可采取的做法是替换此网址。

packages/modules/NetworkStack/src/com/androID/server/connectivity/NetworkMonitor.java #校验源码部分private CaptivePortalProbeResult sendDnsAndhttpProbes(ProxyInfo proxy, URL url, int probeType) {        // Pre-resolve the captive portal server host so we can log it.        // Only do this if httpURLConnection is about to, to avoID any potentially        // unnecessary resolution.        final String host = (proxy != null) ? proxy.getHost() : url.getHost();        // This method cannot safely report probe results because it might not be running on the        // state machine thread. Reporting results here would cause races and potentially send        // information to callers that does not make sense because the state machine has already        // changed state.        sendDnsprobe(host);        return sendhttpProbe(url, probeType, null);}# httpS网址相关源码private final URL mCaptivePortalhttpsUrl;mCaptivePortalhttpsUrl = makeURL(getCaptivePortalServerhttpsUrl());public String getCaptivePortalServerhttpUrl() {    return getSettingFromresource(mContext, R.string.config_captive_portal_http_url,            R.string.default_captive_portal_http_url, CAPTIVE_PORTAL_http_URL);}
解决方案
packages/modules/NetworkStack/res/values/config.xml <!-- http URL for network valIDation, to use for detecting captive portals. --><string name="default_captive_portal_http_url" translatable="false">http://connectivitycheck.gstatic.com/generate_204</string><!-- httpS URL for network valIDation, to use for confirming internet connectivity. -->- <string name="default_captive_portal_https_url" translatable="false">https://www.Google.com/generate_204</string>+ <string name="default_captive_portal_https_url" translatable="false">https://developers.Google.cn/generate_204</string>

网上还有另一种解法如下,就是关闭校验,此解法可以实现不显示网络连接受限的问题,但是在连接需要登陆的WIFI时,无法连接

frameworks/base/packages/SettingsProvIDer/src/com/androID/provIDers/settings/DatabaseHelper.javaloadSetting(stmt, Settings.Global.LID_BEHAVIOR, defaultLIDBehavior);loadStringSetting(stmt, Settings.Global.NTP_SERVER_2,            R.string.def_ntp_server_2);+ loadSetting(stmt, Global.CAPTIVE_PORTAL_MODE, Global.CAPTIVE_PORTAL_MODE_IGnorE);

关于captive_portal_mode的值
0:彻底禁用检测
1:检测到需要登录则d窗提醒(默认值)
2:检测到需要登录则自动断开此热点并不再自动连接

总结

以上是内存溢出为你收集整理的Android系统连接WIFI显示网络连接受限全部内容,希望文章能够帮你解决Android系统连接WIFI显示网络连接受限所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存