基于文件类型的应用程序选择对话框

时间:2011-10-03 13:38:42

标签: android android-dialog

我正在尝试创建一个Dialog,它将显示可用于打开给定文件类型的应用程序列表。

我一直在看一些关于stackoverflow的问题,这个问题与同样的问题有关,但由于缺乏答案我迷路了。特别是我一直在看这个问题:

In Android, How can I display an application selector based on file type?

我的后续问题是:

  • 如何处理List<ResolveInfo>
  • 如何显示带有名称和图标的可用应用程序?
  • 当用户选择某个应用程序时,如何根据所选项目的ResolveInfo启动它?

1 个答案:

答案 0 :(得分:3)

我找到了一个解决方案,它为我提供了可以打开给定mimetype的应用程序的完整列表。这不是最好的,因为我希望列表更具体,只有几个应用程序(例如,如果它是我想打开的URL,只有浏览器会显示)但是可以达到目的。

这是我做的:

File file = new File( "myFileLocation.txt" );
String extension = MimeTypeMap.getFileExtensionFromUrl( file.getPath() );
String type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);

Intent intent = new Intent();
intent.setAction( Intent.ACTION_VIEW );
intent.setDataAndType( Uri.fromFile( file ), type );    
context.startActivity( intent );