Android:从我的应用程序打开默认应用程序中保存的文件

时间:2011-02-10 23:56:30

标签: android file-io document filehandler

首先,对不起,如果有人问我但找不到它。我正在从远程资源下载我的应用程序中的文档。下载文档后,我想为用户打开它。我想知道的是我如何检查他们是否有应用程序来处理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);

2 个答案:

答案 0 :(得分:8)

步骤1:创建ACTION_VIEW Intent,使用setDataAndType()为您下载的文件(例如Uri)和MIME提供Uri.fromFile()内容的类型(例如,application/pdf)。

从那里,你有两个选择:

步骤#2a:将PackageManagerqueryIntentActivities()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);