在带有保护的 Android 应用程序中使用 Pdf?

发布于 2025-01-07 22:09:52 字数 164 浏览 1 评论 0原文

我正在开发一个从服务器下载 pdf 并存储它的应用程序。然后我使用另一个应用程序(例如 repligo reader)从我的应用程序中读取 pdf。

我想知道有什么方法可以以其他应用程序无法读取该文件的方式存储 pdf 文件。仅当从我的应用程序使用该文件时,该文件才是只读的。 有什么办法吗?请帮忙

I am working on an app which downloads the pdf from the server and stores it. Then I use another application like repligo reader to read the pdf from my app.

I wanted to know that is there any way that the pdf files could be stored in a way that no other application could read the file . The file is read only when it is used from my app.
Is there any way?Please help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玻璃人 2025-01-14 22:09:52

(据我所知)我认为为此你必须将下载的 pdf 文件存储在应用程序的内部包中,
/data/data/files,并且您必须通过第三方 pdf 阅读器读取此文件。为此,您必须以 MODE_WORLD_READABLE 的权限存储此文件,以便 pdf 文件存储在您的应用程序包中,并且您可以使用第三方 pdf 阅读器阅读它。它还放置在内部存储中,因此其他应用程序无法轻松访问它(根设备除外)。

写入文件的代码,

FileOutputStream fos = openFileOutput(pdfFileName, Context.MODE_WORLD_READABLE);
fos.write(pdfAsBytes);
fos.close();

编辑:

查看我使用的PDF文件,

File file = new File("/data/data/<package_Name>/files/pdffile");
Uri path = Uri.fromFile(file);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
  startActivity(pdfIntent);
}
catch(Exception e)
{
  Log.e("Activity Not Found Exception",e.toString());
}

(As per my knowledge) I think for this you have to store your downloaded pdf file in application's internal package,
/data/data/<package_name>files, and you have to read this file through third party pdf readers. For this you have to store this file with permission as MODE_WORLD_READABLE so pdf file is stored in your application's package and you can read it with third party pdf reader. Also its placed in internal storage so not other application can easily access it (except root device).

The code for write files,

FileOutputStream fos = openFileOutput(pdfFileName, Context.MODE_WORLD_READABLE);
fos.write(pdfAsBytes);
fos.close();

EDIT:

To view PDF file I used,

File file = new File("/data/data/<package_Name>/files/pdffile");
Uri path = Uri.fromFile(file);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
  startActivity(pdfIntent);
}
catch(Exception e)
{
  Log.e("Activity Not Found Exception",e.toString());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文