Android 9.0 开始,默认不允许明文传输,所以在建立网络连接时会使用 https 连接,同时进行安全认证。如果应用没有做对应处理,即会发生上述异常。
解决方法有两种:
一. 在应用里声明允许明文传输.
1. 在应用的 res/xml 文件夹下新建 network_security_config.xml 文件<?xml version="1.0" encoding="utf-8"?>
2. 在 AndroidManifest.xml 的 application 节点下,配置允许明文传输的属性。
通过上述配置后,在 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)