Android8.1原生系統網路感嘆號消除
阿新 • • 發佈:2019-01-26
原生系統Android8.1上,WiFi上出現感嘆號,此時WiFi可正常訪問。
原因
這是Android 5.0引入的網路評估機制:就是當你連上網路後,會給目標產生204響應的伺服器傳送給一個請求,如果伺服器返回的是狀態碼為204的響應,那麼就被認為網路可以訪問;否則,如返回的是其他狀態碼,那麼將被視為網路訪問需要登入操作等;沒有響應的話,就被認為是網路不可訪問。這裡的情況就是,目標伺服器不能正常訪問
產生204響應的伺服器
加粗網址親測可行,其餘未測試,但可作為一個參考
修改&恢復預設
測試系統:Android 8.1。預設使用https來驗證,如要使用http,需要先寫入關閉https驗證的配置,再填寫http伺服器
# 檢視所有配置
adb shell settings list global
# 使用https
adb shell settings put global captive_portal_https_url xxxxx
# 使用http
adb shell settings put global captive_portal_use_https 0
adb shell settings put global captive_portal_http_url xxxxx
# 使用預設,即刪除配置
adb shell settings delete global captive_portal_http_url
adb shell settings delete global captive_portal_https_url
禁用此功能
按照上述方法,設定captive_portal_mode
的值如下:
- 0:徹底禁用檢測
- 1:檢測到需要登入則彈窗提醒(預設值)
- 2:檢測到需要登入則自動斷開此熱點並不再自動連線
Android8.0相關原始碼程式碼:
原始碼連結,無需梯子可直達。