原因: 自Android 5.0起,谷歌引入了Captive Portal機制, 用於檢測WiFi網路認證是否正常。 該機制預設檢測訪問的是谷歌伺服器,需要科學才能正常訪問谷歌伺服器,如若沒有WiFi就會出現網路受限的情況, WiFi圖示上會出現一個感嘆號標誌,導致系統不能訪問網路了。
解決方法1:
使用ADB 工具,無需要root許可權
adb shell settings delete global captive_portal_https_url
adb shell settings delete global captive_portal_http_url
修改一下伺服器的地址:
adb shell settings put global captive_portal_http_url http://captive.v2ex.co/generate_204
adb shell settings put global captive_portal_https_url http://captive.v2ex.co/generate_204
然後切換一下飛航模式, 啟用一下就好。這個服務地址也可以用小米或者華為的兩個地址:
http://connect.rom.miui.com/generate_204 or
http://connectivitycheck.platform.hicloud.com/generate_204
解決辦法2,其實也就是1的延伸而已:
在AOSP原始碼中,disable captive portal service! 在AOSP目錄下檢索 “NetworkMonitor.java"檔案
找到 mlsCaptivePortalCheckEnabled=getlsCaptivePortalCheckEnabled();
修改為: mlsCaptivePortalCheckEnabled=false;