Android 9 CLEARTEXT communication to … not permitted
问题
最近遇到了个问题:手机系统版本是Android 9 登录时弹出提示:CLEARTEXT communication to guolin.tech not permitted by network security policy
。
解决
这句话意思很简单:网络安全策略不允许与guolin.tech之间进行明文通信,但是还是不知道修改哪里可以解决。网上搜索后发现也有人遇到了同样的问题:
由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉,如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to ” + host + ” not permitted by network security policy。
至于具体解决方案他也讲的很清楚了。简单一点,直接在AndroidMainfest.xml
中<Application
下添加一句android:usesCleartextTraffic="true"
即可解决。复杂一点如下:
其实最好还是使用HTTPS加密协议,就没有那么多问题了。
参考
- CSDN博客:Android P 第二个测试版本请求网络 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.
网友评论