如何将电子邮件附件加载到我的应用程序?

时间:2013-04-16 20:24:39

标签: android android-intent android-activity

我正在开发一款Android应用。

我已经在Manifest.xml中添加了一些设置,如下所示。

<intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT" />
     <data android:mimeType="application/pdf" />
     <data android:mimeType="text/html" />
     <data android:mimeType="text/htm" />
</intent-filter>

然后,用户可以选择我的应用程序来打开附件。

问题是在那之后我该怎么办? 我该如何访问该文件?

1 个答案:

答案 0 :(得分:2)

您将在宣布此过滤器的活动中收到意图。然后,获取您正在打开的文件的URI:

Intent intent = getIntent();
Uri uri = intent.getData();

此URI可能指向PDF文件。您可以这样阅读此文件:

ContentResolver cr = getContentResolver();
InputStream is = cr.openInputStream(uri);

如果你有兴趣直接访问该文件,我建议你从输入流编写自己的文件,因为这个uri可能不一定解析为真实文件,如果是,你可能没有阅读权限它。以下是关于此案例的问题,提供了进一步的解释:

Retrieve file path from caught DownloadManager intent