3

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

我一直在查看有关 stackoverflow 的一些问题,这些问题适用于相同的问题,但由于缺乏答案而迷失了方向。特别是我一直在研究这个问题:

在 Android 中,如何根据文件类型显示应用程序选择器?

我的后续问题是:

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

1 回答 1

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 );
于 2011-10-04T08:18:40.373 回答