背景
项目问题报错如下图,用exoplayer播放网络视频发现了如下图问题,于是开始翻资料查找,发现是个通用问题,在Android 4.4的机器上https网络请求失败,但是测试时用Android5.0以上的手机没有发现这个问题。
问题原因:
https单向认证问题
android 4.4没有启用TLSv1.1 和 TLSv1.2 传输层安全协议
https://developer.android.com/reference/javax/net/ssl/SSLSocket
解决方案:
Application onCreate方法中添加一下代码,
try {
// 解决android 4.4没有启用TLSv1.1 和 TLSv1.2 传输层安全协议
ProviderInstaller.installIfNeeded(getApplicationContext());
SSLContext sslContext;
sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null,null,null);
sslContext.createSSLEngine();
}catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException
| NoSuchAlgorithmException | KeyManagementException e) {
e.printStackTrace();
}
网友评论