2011-10-03 51 views
3

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

我一直在寻找一些问题在这里的工作相同的问题,但我失去了由于缺乏答案的stackoverflow。特别是我一直在寻找这样一个问题:

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

我跟进的问题则是:

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

回答

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); 
+0

只是startActivity PackageManager packageManager = getPackageManager()之前添加以下代码; List activities = packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY); boolean isIntentSafe = activities.size()> 0; (“isIntentSafe”) toast(“No App Available for:\ n”+ fileName); 其他 – Mick

相关问题