首先,对不起,如果有人问我但找不到它。我正在从远程资源下载我的应用程序中的文档。下载文档后,我想为用户打开它。我想知道的是我如何检查他们是否有应用程序来处理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);
答案 0 :(得分:8)
步骤1:创建ACTION_VIEW
Intent
,使用setDataAndType()
为您下载的文件(例如Uri
)和MIME提供Uri.fromFile()
内容的类型(例如,application/pdf
)。
从那里,你有两个选择:
步骤#2a:将PackageManager
和queryIntentActivities()
与Intent
一起使用。如果它返回一个零长度列表,您就知道没有候选者,因此可以禁用任何按钮,菜单选项或任何可能导致startActivity()
上Intent
调用的内容。
或
步骤#2b:只需在用户想要查看时调用startActivity()
,并捕获未安装支持的应用程序时发生的异常。这比上面的#2a简单,但不太方便用户使用。
答案 1 :(得分:2)
以下代码可能会对您有所帮助
文件的代码
编写此代码以获取main函数中的文件url
select i1, i2
from tbl
where (i1 > 1 and i1 < 4)
or (i1 = 1 and i2 >='c')
or (i1 = 4 and i2 <='a')
用于打开手机中存在的默认应用程序的代码 创建另一个类
File myFile = new File("your any type of file url");
FileOpen.openFile(mContext, myFile);