Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为VPN和应用程序安装证书_Android_Certificate - Fatal编程技术网

Android 为VPN和应用程序安装证书

Android 为VPN和应用程序安装证书,android,certificate,Android,Certificate,我试图要求用户安装证书,但我只想在VPN和应用程序上安装证书,而不是在Wi-Fi上 该对话框显示用户可以选择的两个选项,如中所示 到目前为止,我找不到任何可以强制VPN和应用程序选项只显示的选项 我这样调用证书安装: Intent clientCertInstall = KeyChain.createInstallIntent(); clientCertInstall.putExtra(KeyChain.EXTRA_CERTIFICATE, __CERT_ENCODING__); clie

我试图要求用户安装证书,但我只想在VPN和应用程序上安装证书,而不是在Wi-Fi上

该对话框显示用户可以选择的两个选项,如中所示

到目前为止,我找不到任何可以强制VPN和应用程序选项只显示的选项

我这样调用证书安装:

 Intent clientCertInstall = KeyChain.createInstallIntent();
 clientCertInstall.putExtra(KeyChain.EXTRA_CERTIFICATE, __CERT_ENCODING__);
 clientCertInstall.putExtra(KeyChain.EXTRA_NAME, __NAME__);
 activity.startActivityForResult(clientCertInstall, __CODE__);
此外,如果用户安装了证书,应用程序将收到ActivityResult上的信息,但意图将为null,结果代码为-1,不会告诉我用户是否选择WIFI或VPN和应用程序

onActivityResult(int requestCode, int resultCode, Intent data) 
最后,如果用户通过Wi-Fi安装证书,我无法在密钥库别名下找到它,如下所示:

KeyStore ks = KeyStore.getInstance("AndroidCAStore");
Eumeration aliases = ks.aliases();
while (aliases.hasMoreElements()) {
       String alias = (String) aliases.nextElement();
       X509Certificate cert = (X509Certificate) ks.getCertificate(alias);
       BigInteger localCertSerialNumber = cert.getSerialNumber();
       String localIssuerDN = cert.getIssuerX500Principal().getName();

       BigInteger serial = new BigInteger(currentCertificateSerial);
       if (installedCertSerialNumber.compareTo(localCertSerialNumber) == 0 && installedCertIssuerDn.equals(localIssuerDN)) {
           //Should reach here but it does not when user installs certificate via Wi-Fi
       }
}

我做错什么了吗?

你解决这个问题了吗?不,还没有,直到现在我还找不到任何可以帮助你解决这个问题的东西吗?不,还没有,直到现在我还找不到任何可以帮助我的东西