允许用户选择打开文件的应用程序

时间:2015-02-19 16:22:01

标签: android android-intent android-file

在应用程序中,用户可以下载文件并在下载完成后打开它。

我可以打开窗口来选择这样的应用程序:

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.parse("file://" + path);                 
intent.setDataAndType(uri,"image/*");
context.startActivity(intent);

但是这里" image / *"是硬编码的。在我的应用程序中,用户可以下载具有不同扩展名的文件(txt,gif,png,doc,.etc)。

当然我可以这样做:

if(fileExt.equels("png") || fileExt.equels("jpg")  || fileExt.equels("gif") )
   intent.setDataAndType(uri,"image/*");

但是我需要为所有扩展名编写代码= /

那么,您能否提出更好的方法来过滤此文件扩展名?

1 个答案:

答案 0 :(得分:0)

您可以使用活动选择器:(当然,您需要提供MIME类型作为image / *,以便只有可以处理图像的应用程序才会出现在活动选择器中。

Intent chooser = Intent.createChooser(intent, title);

// Verify the intent will resolve to at least one activity
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(chooser);
}