java - 将私有(private)数据保存到公共(public)位置

标签 java android

我正在尝试使用 PDF 阅读器打开我的 PDF 文件,我正在搜索更多关于如何做到这一点的信息,找到了很多答案,但每个答案都告诉我将该文件保存到“SD 卡”。

将文件保存到 SD 卡是个好主意,但问题是如果用户没有在他的手机中安装 SD 卡。目前很多手机都有大内存,例如:Samsung galaxy S3、HTC One V、Samsung Galaxy Note、Sony Xperia S 和许多手机。

所以我的问题是:这些手机已经有一个大的内置内存,所以用户不需要添加 SD 卡(这取决于用户)。在这种情况下,其他应用程序可以访问哪个位置,例如公共(public)位置(SD 卡)。

当我搜索我的问题时,我发现了这个 link说明保存由 Android 平台提供的应用程序数据的位置。

Android 平台提供了这些选项来保存应用数据:

  1. 共享偏好
  2. 内部存储
  3. 外部存储
  4. SQLite 数据库
  5. 网络连接

Android 提供了一种将私有(private)数据公开给其他应用程序的方法——使用内容提供程序

我阅读了有关内容提供程序的信息,但我不明白它是如何工作的。

如果任何教程展示了它是如何工作的,请提供该教程链接,或者如果可以通过其他方式完成,请告诉我如何操作。

任何帮助将不胜感激。谢谢!

最佳答案

根据documentation看来将 PDF 保存在公共(public)存储中的唯一实际选择是将其存储在外部存储中。您始终可以让您的应用程序检查外部存储是否可用,如果可用,则使用它来共享您的 PDF。

您可以尝试的另一种方法(我还没有尝试过,现在才想到)是将 PDF 写入临时文件,然后共享该临时文件的位置。

File.createTempFile()将创建一个临时文件。您可以尝试查看该临时文件的保存位置,然后查看其他应用是否可以访问该位置。

关于java - 将私有(private)数据保存到公共(public)位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11899067/

相关文章:

java - 枚举中来自供应商的无界通配符通用数组

java - 复制构造函数是否会进行浅复制?

java - AesZipFileEncrypter zipAndEncrypt 方法将所有文件夹树添加到文件

Android PDF Writer 在 WRAP_CONTENT 时忽略我的 View 高度

Android - 振动设备不工作

java - 混音 Swing/FX : can't dispose a dialog from fxml controller

java - android Date 和 SimpleDateFormat 输出错误

android - 如何确保应用程序每次打开时都重新启动,即使它只是放在后台?安卓

java - 为什么 Android 找不到我的 Activity?

android - 如何围绕圆圈为 View 设置动画?