需要
项目要求用户在APP中就可将选中的证书安装到手机内
一、手动安装步骤
1、在设置中选择高级选项(不同手机位置不同,也有可能在安全和隐私中),点击进入
2、在高级设置中选择“安全”,点击进入
3、在安全内选择从SD卡安装,点进进入
4、在这个界面(外部存储的根目录)选择你要安装的证书,点击即可。
5、就会调起安装界面,此时显示页面将与代码中的相同,但是这里别名出为空,需要手动输入。
二、代码中安装证书
1、其实很简单,只需要调用下面的方法即可
/**
* 安裝证书
*/
public static void installCert(Context context) {
InputStream assetsIn = null;
Intent intent = KeyChain.createInstallIntent();
try {
//获取证书流,注意参数为assets目录文件全名
assetsIn = context.getAssets().open("test.cer");
byte[] cert = new byte[10240];
assetsIn.read(cert);
javax.security.cert.X509Certificate x509 = null;
try {
x509 = javax.security.cert.X509Certificate.getInstance(cert);
//将证书传给系统
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, x509.getEncoded());
} catch (CertificateException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
//此处为给证书设置默认别名,第二个参数可自定义,设置后无需用户输入
intent.putExtra("name", "别名(可设置默认)");
startActivity(intent);
}