Android 9 CLEARTEXT communication to … not permitted
問題
最近遇到了個(gè)問題:手機(jī)系統(tǒng)版本是Android 9 登錄時(shí)彈出提示:CLEARTEXT communication to guolin.tech not permitted by network security policy
及舍。
解決
這句話意思很簡(jiǎn)單:網(wǎng)絡(luò)安全策略不允許與guolin.tech之間進(jìn)行明文通信袱瓮,但是還是不知道修改哪里可以解決庄新。網(wǎng)上搜索后發(fā)現(xiàn)也有人遇到了同樣的問題:
由于 Android P 限制了明文流量的網(wǎng)絡(luò)請(qǐng)求洲守,非加密的流量請(qǐng)求都會(huì)被系統(tǒng)禁止掉遗契,如果當(dāng)前應(yīng)用的請(qǐng)求是 htttp 請(qǐng)求猪落,而非 https ,這樣就會(huì)導(dǎo)系統(tǒng)禁止當(dāng)前應(yīng)用進(jìn)行該請(qǐng)求吕晌,如果 WebView 的 url 用 http 協(xié)議失暂,同樣會(huì)出現(xiàn)加載失敗熄诡,https 不受影響可很。為此,OkHttp3 做了檢查凰浮,所以如果使用了明文流量我抠,默認(rèn)情況下,在 Android P 版本 OkHttp3 就拋出異常: CLEARTEXT communication to ” + host + ” not permitted by network security policy袜茧。
至于具體解決方案他也講的很清楚了菜拓。簡(jiǎn)單一點(diǎn),直接在AndroidMainfest.xml
中<Application
下添加一句android:usesCleartextTraffic="true"
即可解決笛厦。復(fù)雜一點(diǎn)如下:
其實(shí)最好還是使用HTTPS加密協(xié)議纳鼎,就沒有那么多問題了。
參考
- CSDN博客:Android P 第二個(gè)測(cè)試版本請(qǐng)求網(wǎng)絡(luò) CLEARTEXT communication to host not permitted by network
- Android Developers Blog:Protecting users with TLS by default in Android P
- Android Docs:android:usesCleartextTraffic
The end.