我正在开发一个pdf阅读器,因为android没有任何原生pdf 观众所以我必须使用第三方pdf查看器。 在这种情况下,我选择了Adobe pdf viewer for android。 我可以打开存储在我设备的SD卡中的pdf文件。 现在我想从我的应用程序中打开受密码保护的pdf文件。 如果用户想手动打开受密码保护的pdf文件,请使用 打开时必须提供密码。 但我想从我的应用程序中打开那些密码pdf文件而不用 任何密码提示。 应用程序提供密码,[apps知道密码],没有 任何密码提示,pdf将打开。
目前如果我想打开任何受密码保护的pdf文件 应用程序然后出现密码提示,需要密码 打开它。
我正在使用此代码从SDCARD中存储的pdf文件中打开pdf。
====
File pdfFile = new File(fileLocation);
if (pdfFile.exists())
{
Uri pdfFilepathUri = Uri.fromFile(pdfFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(pdfFilepathUri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(intent);
}
catch (ActivityNotFoundException e)
{
Toast.makeText(this,"No Application Available to View PDF : "+fileLocation,Toast.LENGTH_LONG).show();
}
}
else
Toast.makeText(this,"File cannot found : "+fileLocation,Toast.LENGTH_SHORT).show();
====
任何人都可以帮助我如何提供密码 应用程序,以便它可以自动打开pdf文件 提示任何密码窗口。 ?
答案 0 :(得分:1)
如果用户想要手动打开受密码保护的pdf文件,则必须在打开时提供密码。但我想从我的应用程序打开那些密码pdf文件,没有任何密码提示。
欢迎您联系各种PDF查看应用程序的作者,看看他们是否支持通过Intent
额外内容传递PDF密码。记录的ACTION_VIEW
协议中肯定没有任何内容可以支持这种情况。
答案 1 :(得分:0)
简而言之,你不能。我知道那里没有PDF阅读器支持 ,但是即使有,您也不能依赖安装了该特定阅读器的用户-因此无法获得此支持普遍工作。
但是,您可以使用handles all the heavy lifting of the PDF rendering库在应用程序中构建自己的基本PDF视图,然后使用该视图打开PDF来解决此问题。一些此类库,例如链接的AndroidPdfViewer
库,可让您指定密码,例如:
pdfView.fromFile(file)
.password("password123")
.load();
这将使您能够提供一种通用的解决方案,以显示受密码保护的PDF文件,并且还具有额外的安全优势,即不会在上下文之间泄漏密码。
答案 2 :(得分:0)
如果 PDF 在 SD 卡中:
private void displayPDF() {
dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Data/1.pdf/");
pdfView.fromFile(dir)
.password("12345678")
.load();
}