本文转自:Android联网失败报错:java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
为保证用户数据和设备的安全,Google针对 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。
安卓sdk27之上只能进行https请求,保证网络请求安全。在Android P系统的设备上,如果应用使用的是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,同样地,如果应用嵌套了webview,webview也只能使用https请求。
对于这个问题我们只需在AndroidManifest.xml配置文件的 < application >标签中直接插入
android:usesCleartextTraffic="true"
这样做是指示应用程序是否打算使用明文网络流量,例如明文HTTP。目标API级别为27或更低的应用程序的默认值为“ true”。面向API级别28或更高级别的应用默认为“ false”。
例如:
<application ···android:usesCleartextTraffic="true"···>···
</application>