小编Ped*_*dro的帖子

如何在Android上以编程方式安装CA证书而无需用户交互

我正在尝试安装证书而不提示用户.我知道这不是好习惯,但这就是PM想要的.

使用KeyChain.createInstallIntent(),我可以通过调用让Android启动证书安装对话框startActivity.但是,当我通过意图时sendBroadcast,没有任何反应.出于安全考虑,平台可能不支持此功能吗?

String CERT_FILE = Environment.getExternalStorageDirectory() + "/test/IAT.crt";
Intent intent = KeyChain.createInstallIntent();
try {
    FileInputStream certIs = new FileInputStream(CERT_FILE);
    byte [] cert = new byte[(int)certFile.length()];
    certIs.read(cert);
    X509Certificate x509 = X509Certificate.getInstance(cert);
    intent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded()); 
    intent.putExtra(KeyChain.EXTRA_NAME, "IAT Cert");
    EapActivity.this.startActivityForResult(intent, 0);  // this works but shows UI
    EapActivity.this.sendBroadcast(intent);  // this doesn't install cert
} catch (IOException e) {
Run Code Online (Sandbox Code Playgroud)

android x509certificate android-intent android-wifi

18
推荐指数
3
解决办法
2万
查看次数