Android:如何打开未知的文件类型

时间:2012-04-21 17:56:19

标签: java android file-handling

我正在开发android中的文件浏览器应用程序。 如何处理扩展名未知的文件?当我尝试打开这种文件时,它抛出ActivityNotFound异常。但我希望系统弹出应用程序列表,以便我们可以手动选择要打开它的应用程序。 谁能在这帮助我?

我开始通过将文件及其扩展名绑定到intent来打开文件的活动。

Intent intent = new Intent(Intent.ACTION_VIEW);
MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1);
String type = mime.getMimeTypeFromExtension(ext);
intent.setDataAndType(Uri.fromFile(new File(file.toString())), type);
try
{
    startActivity(intent);
}
catch(Exception e){}

2 个答案:

答案 0 :(得分:4)

当没有注册可以处理特定文件类型的应用程序时,抛出

ActivityNotFound。这意味着您要显示的应用列表将为空。

处理他的情况最合适的方法是捕获ActivityNotFound异常,并显示一个Toast,通知用户没有适当的应用程序来打开该文件。

所有Android浏览器都以这种方式进行。

答案 1 :(得分:0)

我将在此处留下此链接,针对同一问题,并提供更多详细信息(第二个答案,阅读评论):Launching an Activity based on a file in android