5

我正在android中开发一个文件资源管理器应用程序。如何处理带有未知扩展名的文件?当我尝试打开此类文件时,它会抛出 ActivityNotFound 异常。但是我希望系统弹出应用程序列表,以便我们可以手动选择一个应用程序来打开它。有人能帮我一下吗?

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

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){}
4

2 回答 2

4

ActivityNotFound当没有注册可以处理特定文件类型的应用程序时抛出。这意味着您要显示的应用程序列表将为空。

处理这种情况的最合适的方法是捕获ActivityNotFound异常并显示一个 toast 通知用户没有合适的应用程序可以打开文件。

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

于 2012-04-21T18:03:40.593 回答
0

我将把这个链接留在这里,它针对同样的问题,并有更多的细节(第二个答案,阅读评论):Launching an Activity based on a file in android

于 2012-04-21T18:07:47.877 回答