Пытаюсь запустить свое приложение с помощью Arc. Мое приложение требует, чтобы на устройстве был установлен определенный сертификат. Обычно я делаю это через настройки Android. Как установить сертификат в Arc?
Спасибо
Пытаюсь запустить свое приложение с помощью Arc. Мое приложение требует, чтобы на устройстве был установлен определенный сертификат. Обычно я делаю это через настройки Android. Как установить сертификат в Arc?
Спасибо
Это казалось невозможным, поэтому в конце концов я добавил сертификат как необработанный ресурс, а затем, используя следующую статью, я загрузил сертификат с помощью кода: http://littlesvr.ca/grumble/2014/07/21/android-programming-connect-to-an-https-server-with-self-signed-certificate/
Все работало хорошо, и теперь приложение можно запускать через ARC с использованием сертификата.
На случай, если статья выйдет из строя в будущем, вот соответствующий код с небольшими изменениями для поддержки:
protected SSLSocketFactory getCertificateSocketFactory() throws Exception {
InputStream certStrm = context.getResources().openRawResource(R.raw.cert_file)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate ca = cf.generateCertificate(certStrm);
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, tmf.getTrustManagers(), null);
return sslContext.getSocketFactory();
}