为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输。

Android网络编程
使用HttpURLConnection 类中的getResponseCode方法请求一个网络访问,一直fail,查看log,打印:

NetworkSecurityConfig: No Network Security Config specified, using platform default
1
但我安卓网络权限也加了啊,最后上网求助,竟然是HTTP和HTTPS的原因,也和使用Android 10的SDK开发有关。真的有时候用新东西也要慎重,毕竟一个好的社区和文档也是对编程开发相当大的助力。就比如一些开源项目,无论质量有多好,一旦后续支持没了,其吸引力也大大减少。

解决办法:
AndroidManifest.xml里增加

android:usesCleartextTraffic=“true”
1
原因:
默认为true,该属性用于应用的NetworkSecurityPolicy,并且声明是否允许未加密的网络流量。
当usesCleartextTraffic被设置为false,应用程序会在使用HTTP时崩溃。

但是在Android 9.0以后Google没有默认设置为true.
————————————————
版权声明:本文为CSDN博主「greedy-hat」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41638851/article/details/105459815

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐