Я пытаюсь подключиться к серверу через https, и Android не распознает сертификат как «доверенный», поэтому я получаю следующее исключение:
javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.
Для решения этой проблемы я включилсертификат в приложении (папка assets) и использую его для проверки сертификата сервера.
Я делаю это с классом CustomSSLSocketFactory, где он читает сертификат и без проблем выполняет процесс проверки во время соединения https.
ссылка на испанском
ссылка на английском
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setSSLSocketFactory(CustomSSLSocketFactory.getSSLSocketFactory(context));
Теперь я должен повторить этот процесс, но для воспроизведения используйте exoplayer2hlsvideo, и после нескольких дней расследования я не достигаю этого.
private MediaSource buildMediaSourceHlsMedia(Uri uri) throws MalformedURLException {
String UserAgent = Util.getUserAgent(getContext (), getResources().getString(R.string.app_name));
int minLoadableRetryCount;
DefaultHttpDataSourceFactory dataSourceFactory =new DefaultHttpDataSourceFactory( UserAgent,BANDWIDTH_METER,DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS, DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS,true);
dataSourceConHeader(dataSourceFactory,uri.toString(),mParam4);
MediaSource ms= new HlsMediaSource.Factory(dataSourceFactory).setMinLoadableRetryCount(5).createMediaSource(uri);
return ms;
}
Я полагаю, что необходимо кодировать пользовательский источник данных, но через несколько дней я не могу этого достичь.Я не знаю как это сделать.Я полагаю, что я должен включить в пользовательский источник данных (с остальной частью необходимого кода):
conn.setSSLSocketFactory(CustomSSLSocketFactory.getSSLSocketFactory(context));
Может кто-нибудь направить меня ?.Спасибо