2013-08-05 75 views
1

我想在HTC Desire S設備Android版本2.3.5和HTC Sense版本3.0中以編程方式添加CA證書。在android上安裝CA使用意圖不適用於android 2.3

我使用下面的代碼:

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證書的代碼,吐司消息也顯示,其表示,CA被成功安裝。

但是在活動結果上,我也得到了0(Activity.RESULT_CANCELED)對resultCode。

在其他類型的設備S3與Android 4.0其工作正常。

有沒有其他人曾經遇到過這個問題,並有解決方案。

+0

仍然有這個問題:) – DroidEngineer

回答

0

此方法適用於我,試試吧 公共靜態無效exportCACertToUserStore(上下文的背景下){

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(); 
    } 
} 
相關問題