0

我正在开发一个 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>

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

问题是在那之后我能做什么?如何访问该文件?

4

1 回答 1

2

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

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

这个 URI 可能会指向一个 PDF 文件。你可以像这样阅读这个文件:

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

如果您对直接访问文件感兴趣,我建议您从输入流中编写自己的文件,因为此 uri 可能不一定解析为真实文件,如果是,您可能无权读取它。这是一个关于这个案例的问题,它提供了进一步的解释:

从捕获的 DownloadManager 意图中检索文件路径

于 2013-04-16T20:27:23.093 回答