Android 9.0 开始,默认不允许明文传输,所以在建立网络连接时会使用 https 连接,同时进行安全认证。如果应用没有做对应处理,即会发生上述异常。

解决方法有两种:

一. 在应用里声明允许明文传输.

1. 在应用的 res/xml 文件夹下新建 network_security_config.xml 文件<?xml  version="1.0" encoding="utf-8"?>

2. 在 AndroidManifest.xml 的 application 节点下,配置允许明文传输的属性。

5605d0f11d40fd1c06a903d8fd92c758.png

通过上述配置后,在 Android 9.0 手机上会仍然使用 http 连接,即明文传输的方式。

二. 不使用明文传输,使用 https 方式。

如果在应用里没有声明允许明文传输,那么 SDK 默认在 Android 9.0 系统上会使用 https 连接方式,也就意味着会进行安全认证。

如果您是公有云用户,则不需要处理,融云服务已经配置了安全证书。

如果您是私有云客户,且使用自签证书的话,需要调用下面的 API , 参数传 true:/**

* 设置建立 Https 连接时,是否使用自签证书。

 此方法需要在 {@link #init(Context)}之前调用。

 如果不调用此方法, SDK 连接时会按默认证书处理

*

* @param isEnable 是否使用自签证书。true 使用自签证书;false, 使用默认证书。

*/

public void enableHttpsSelfCertificate(final boolean isEnable)

Logo

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

更多推荐