2011-10-03 57 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

相關問題