1
特定の証明書がAndroidデバイスにインストールされているかどうかを確認することはできますか?たとえば、特別な会社の証明書ですか?特定の証明書がデバイスにインストールされていることを確認してください
特定の証明書がAndroidデバイスにインストールされているかどうかを確認することはできますか?たとえば、特別な会社の証明書ですか?特定の証明書がデバイスにインストールされていることを確認してください
Android 5.1.1
を搭載したデバイスで動作するようになりました。
あなたが探している証明書かどうかを確認する方法に応じて、任意のフィールドを選択して比較することができます。私は、発行者の識別名(DN)をただちにチェックする簡単な方法に行きました。
private boolean isCertificateInstalled(String issuerDn) {
try {
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init((KeyStore) null);
X509TrustManager xtm = (X509TrustManager) tmf.getTrustManagers()[0];
for (X509Certificate cert : xtm.getAcceptedIssuers()) {
if (cert.getIssuerDN().getName().contains(issuerDn)) {
return true;
}
}
} catch (NoSuchAlgorithmException | KeyStoreException e) {
// Handle exceptions
}
return false;
}
私は、これは前のアイスクリームサンドイッチでも動作するはず主張this answerからこの解決策を取りました。
もう少し調査した後、それは可能ではないようです。 Android 4.0 ICSでは可能ですが、下位バージョンではできません:( – Henry