【问题标题】:How to open .crt file in Android ?如何在 Android 中打开 .crt 文件?
【发布时间】:2014-04-19 08:00:17
【问题描述】:

android 中很少有设备无法读取 .crt(证书文件),而很少有设备可以。如何处理此设备相关问题?除了 ACTION_VIEW 之外,是否还有其他打开文件的意图,可以替代打开文件。

File vpnCerti = new File("/sdcard/VPNCertificate/Install.crt");
                Uri path = Uri.fromFile(vpnCerti); //Mime Type Info : http://webdesign.about.com/od/multimedia/a/mime-types-by-content-type.htm
                MimeTypeMap type_map = MimeTypeMap.getSingleton();
                //Get the extension from the path
                String extension = MimeTypeMap.getFileExtensionFromUrl(path.toString());
                extension = extension.toLowerCase();
                if (extension.contains(".")) {
                    extension = extension.substring(extension.lastIndexOf("."));
                }
                String mime_type = type_map.getMimeTypeFromExtension(extension);
                Log.d("DownloadManager", "MIME Type : " + mime_type);
                Intent i = new Intent();
                i.setAction(android.content.Intent.ACTION_VIEW);
                i.setDataAndType(Uri.fromFile(vpnCerti), mime_type);
                i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                try
                {
                    Log.d("DownloadManager", "Trying to open file");
                    startActivity(i);
                    Log.d("DownloadManager", "Opened file");
                }
                catch(ActivityNotFoundException e)
                {
                    Log.d("DownloadManager", "Couldn't open file");
                    Toast.makeText(SettingsActivity.this, "Couldn't find specific activity to open it", Toast.LENGTH_LONG).show(); 
                }

【问题讨论】:

    标签: android xml file layout x509certificate


    【解决方案1】:

    我不确定您现在遇到的确切问题(没有堆栈跟踪很难判断),但这可能是因为您的某些设备没有安装 SD 卡。事实上,我一直在研究加载证书的最佳解决方案,如果您只有几个证书要管理,将它们放在 /res/raw/ 文件夹中可能比将它们存储在 sd 卡中更好。以下是如何从 /res/raw/ 加载一个:

    InputStream is = context.getResources().openRawResource(R.raw.cert_id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-11
      • 2011-08-14
      • 2018-12-11
      • 2013-01-14
      • 2012-09-17
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多