1

我正在尝试以编程方式在 HTC Desire S 设备 Android 版本 2.3.5 和 HTC Sense 版本 3.0 中添加 CA 证书。

我正在使用以下代码:

Intent intent = new Intent("android.credentials.INSTALL");
intent.putExtra("name","testCA");
intent.putExtra("CERT", bytes);
startActivityForResult(intent, CA_CERT_ADDED);
startActivityForResult(intent, CA_CERTIFICATE_ADDED);

当我运行代码时,会出现对话框,说明我正在安装 CA 证书,还会显示 Toast 消息,说明 CA 已成功安装。

但是在活动结果上,我也得到了针对 resultCode 的 0(Activity.RESULT_CANCELED)。

在其他类型的设备 S3 与 android 4.0 它工作正常。

以前有没有其他人遇到过这种情况,是否有解决方案。

4

1 回答 1

0

这个方法对我有用,试试吧 public static void exportCACertToUserStore(Context context){

    String ACTION_INSTALL = "android.credentials.INSTALL";
    String EXTRA_CERTIFICATE = "CERT";


    Intent intent = new Intent(ACTION_INSTALL);
    intent.setClassName("com.android.certinstaller","com.android.certinstaller.CertInstallerMain");
    try {
        String keystoreCAExportFullPath = PreferenceUtils.getCAExportFilePath(context.getApplicationContext());
        File caExportFile = new File(keystoreCAExportFullPath);
        byte[] result = new byte[(int) caExportFile.length()];
        FileInputStream in = new FileInputStream(caExportFile);
        in.read(result);
        in.close();
        intent.putExtra(EXTRA_CERTIFICATE, result);
        context.startActivity(intent);
    }catch (Exception ex){
        ex.printStackTrace();
    }
}
于 2016-07-27T12:10:49.247 回答