前段时间在写一个小Demo的时候,发现使用自己封装的OkHttp网络模块来请求天气数据报错,提示 “CLEARTEXT communication to not permitted by network security policy”
Android 9不允许明文传输
但在安卓P,api 28以下的设备,可以正常收到数据,如图所示:
Android 8及以下版本允许明文传输
这个问题的原因是因为安卓新版本默认不允许使用明文网络传输,会强制让应用都使用https。解决办法如下,在AndroidManifest.xml文件的<application标签中,加入一句"android:usesCleartextTraffic="true",允许应用进行明文传输即可。