Android:从我的应用程序打开默认应用程序中保存的文件
首先,很抱歉,如果有人问过这个问题,但我找不到它。我正在从远程资源下载我的应用程序中的文档。下载文档后,我想为用户打开它。我想知道的是如何检查他们是否有处理 Pdf 或 Tiff 的应用程序并在他们的默认应用程序中启动它?
谢谢。
编辑
这里是解决方案的一部分:
Intent viewDoc = new Intent(Intent.ACTION_VIEW);
viewDoc.setDataAndType(
Uri.fromFile(getFileStreamPath("test.pdf")),
"application/pdf");
PackageManager pm = getPackageManager();
List<ResolveInfo> apps =
pm.queryIntentActivities(viewDoc, PackageManager.MATCH_DEFAULT_ONLY);
if (apps.size() > 0)
startActivity(viewDoc);
First off, sorry if this has been asked but I cannot find it. I am downloading documents in my app from a remote resource. Once the document is downloaded, I want to open it for the user. What I want to know is how do I check if they have an application to handle Pdf or Tiff and launch it in the default application for them?
Thank you.
edit
here is part of the solution:
Intent viewDoc = new Intent(Intent.ACTION_VIEW);
viewDoc.setDataAndType(
Uri.fromFile(getFileStreamPath("test.pdf")),
"application/pdf");
PackageManager pm = getPackageManager();
List<ResolveInfo> apps =
pm.queryIntentActivities(viewDoc, PackageManager.MATCH_DEFAULT_ONLY);
if (apps.size() > 0)
startActivity(viewDoc);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
步骤#1:创建一个
ACTION_VIEW
Intent
,使用setDataAndType()
为您下载的文件提供Uri
(例如,Uri.fromFile()
)和内容的 MIME 类型(例如,application/pdf
)。从那里,您有两个选择:
步骤#2a:将
PackageManager
和queryIntentActivities()
与该Intent
一起使用。如果它返回零长度列表,则您知道没有候选者,因此可以禁用任何按钮、菜单选项或任何会导致在该 Intent< 上调用startActivity()
的内容/代码>。或
步骤 #2b:当用户想要查看它时,只需调用
startActivity()
即可,并捕获未安装受支持的应用程序时发生的异常。这比上面的 #2a 更简单,但不太用户友好。Step #1: Create an
ACTION_VIEW
Intent
, usingsetDataAndType()
to provide aUri
to your downloaded file (e.g.,Uri.fromFile()
) and the MIME type of the content (e.g.,application/pdf
).From there, you have two options:
Step #2a: Use
PackageManager
andqueryIntentActivities()
with thatIntent
. If it returns a zero-length list, you know there are no candidates, and therefore can disable any buttons, menu choices, or whatever that would lead to callingstartActivity()
on thatIntent
.or
Step #2b: Just call
startActivity()
when the user wants to view it, and catch the exception that occurs when there are no supported apps installed. This is simpler than #2a above, but not quite as user-friendly.以下代码可能会帮助您
为文件编写代码
编写此代码以获取主函数中文件的 url 代码
以打开手机中存在的默认应用程序
创建另一个类
The following code might help you
code for the file
write this code to get the url of file in main function
Code to open default application present in the handset
create another class