gpt4 book ai didi

android - 带有 PdfRenderer 的 SecurityException,带有密码保护的 pdf,甚至比普通 pdf 重复

转载 作者:行者123 更新时间:2023-11-29 02:24:07 24 4
gpt4 key购买 nike

如果尝试使用 PdfRenderer API 打开密码保护的 PDF,给出 SecurityException 并相应地处理,在 catch block 内,然后是 onDestroy 基本清理完成后,返回主页 Activity ,然后浏览一个简单的未 protected PDF,然后再次发生相同的异常。

请注意,只有在打开任何 protected 文件后才会发生这种情况。

引用以下代码:

      @Override
protected PdfRenderer doInBackground(Uri... uri) {
Uri uriToProcess = uri[0];
try {
contentResolver=getContentResolver();
parcelFileDescriptor = contentResolver.openFileDescriptor(uriToProcess, "r");
if(parcelFileDescriptor!=null && mPdfRenderer==null) {
mPdfRenderer = new PdfRenderer(parcelFileDescriptor);
}
} catch (FileNotFoundException e) {
exceptionMsg="Sorry! No such file or directory found";
handleExceptionInUI(exceptionMsg, progressDialog);
Log.e("$$$$ FNFException", e.toString());

} catch (IOException e) {
exceptionMsg="Sorry! Something went wrong with IO";
handleExceptionInUI(exceptionMsg, progressDialog);
Log.e("$$$$ IOException", e.toString());
} catch (SecurityException e) {
if (parcelFileDescriptor!=null) {
try {
parcelFileDescriptor.close();
parcelFileDescriptor = null;
contentResolver=null;
} catch (IOException e1) {
e1.printStackTrace();
}
}

if (mPdfRenderer!=null){
mPdfRenderer.close();
mPdfRenderer=null;
}

exceptionMsg="Password protected file, This can't be opened";
handleExceptionInUI(exceptionMsg, progressDialog);
Log.e("$$$$ SecurityException", e.toString());
} catch (Exception e) {
exceptionMsg="Sorry! Something went wrong.";
handleExceptionInUI(exceptionMsg, progressDialog);
Log.e("$$$$ EXCEPTION", e.toString());
}
return mPdfRenderer;
}

诚挚感谢任何帮助。

最佳答案

我的应用程序也遇到了同样的问题。我解决它的方法是使用 https://github.com/TomRoush/PdfBox-Android并加载文档并检查密码保护。在没有抛出 InvalidPasswordException 之后,可以使用 PdfRenderer 安全地加载文件。

关于android - 带有 PdfRenderer 的 SecurityException,带有密码保护的 pdf,甚至比普通 pdf 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com