我正在尝试创建一个Dialog,它将显示可用于打开给定文件类型的应用程序列表。
我一直在看一些关于stackoverflow的问题,这个问题与同样的问题有关,但由于缺乏答案我迷路了。特别是我一直在看这个问题:
In Android, How can I display an application selector based on file type?
我的后续问题是:
List<ResolveInfo>
?答案 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 );