【发布时间】:2012-01-11 18:26:44
【问题描述】:
您好,我正在开发一个应用程序,我需要列出能够打开文件的所有类型的应用程序。如果文件是图像,我通常会做这样的事情来显示所有能够查看图像的应用程序。
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "image/*");
context.startActivity(intent);
但是说我有一个未知文件,我如何列出所有能够查看文件的应用程序,以便用户可以选择适当的应用程序在我的应用程序中打开文件。
如果可能的话,我还需要在数组列表中列出的标题,以便我可以在列表视图中列出它们。
感谢您在获取能够查看文件的应用程序列表方面提供的任何帮助
====================================
编辑
好吧,更简单的方法是如何将上述意图中的应用程序放入数组列表中,我可以执行 image/* audio/* 等并将它们全部添加到列表中,然后将它们列出在列表视图中,这将解决我的问题问题
【问题讨论】:
-
您如何确定应用程序是否可以处理该文件?如果您不是自己编写所有这些应用程序,它们必须能够过滤您为未知文件创建的意图。当您调用 startActivity(intentWithUnknownFile); 时,这些应用程序如何知道要过滤的意图;