访问PDF文件传递给Adobe(Android)

时间:2013-08-30 17:55:03

标签: android pdf

Android新手,惊讶于使用PDF的难度。我想我已经将将PDF传递给像Adobe这样的应用程序的代码放在一起,如果没有安装这样的应用程序,则会返回错误。

但是,targetName给出的文件路径似乎没有用,无论我将target放入资产还是res / raw。只要应用程序可以读取并传递文件,我就不在乎文件的位置。

任何人都可以告诉我在Android中打开PDF时我必须执行什么伏都教仪式?我想念iOS PDFView。

public void openPdf(Context context, String targetName) {

File target = new File(targetName);

if (target.exists()) {
Uri targetUri = Uri.fromFile(target);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(targetUri, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try{
context.startActivity(pdfIntent);
}
catch (ActivityNotFoundException e) {
    Toast.makeText(this, "You must have a PDF reader installed to view this document.", Toast.LENGTH_SHORT).show();
}
}

else {
    Toast.makeText(this, "Die App ist kaput.", Toast.LENGTH_SHORT).show();
}

}

2 个答案:

答案 0 :(得分:0)

要使用该意图,您需要将所有pdf存储在SD卡上,然后将该意图用于SD卡上的pdf。

示例:

Uri pdfUri = Uri.parse(pdfUriString);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(pdfUri, "application/pdf");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

如果你的项目资源文件夹中包含你的pdf,这将不起作用

答案 1 :(得分:0)

  

但是,targetName给出的文件路径似乎没有用,无论我将目标放在资产中还是res / raw。

正确。这相当于在拇指驱动器上放置一个未插入计算机的PDF文件,然后抱怨您“对Windows中使用PDF的难度感到惊讶”。

  

只要应用程序可以读取并传递文件,我就不在乎文件的位置。

将其写入external storage。或者通过content:// Uri第三方应用将其复制到internal storageuse FileProvider to serve it