android - 将(付费)内容下载到 Android 应用程序中

标签 android download updates

我有一个简单的应用程序,可以处理(显示、播放...)用户下载的数据。 IE。当用户下载应用程序(免费)时,它是空的,或者只填充了一些样本数据,但随后用户可以下载他们喜欢的实际内容(并可能通过 Android 计费系统支付)。每个项目都是一个文件夹,其中包含一个 xml 文件以及多个子文件夹(例如音频和图像)。在开发阶段,数据存储在 Assets 目录中。

此时付款本身不是问题的主题。我实际上对以下内容感兴趣:

  • 我可以将下载的数据存储在手机的什么位置,以便应用程序可以访问它,但用户不能手动复制它(例如复制到另一部手机)。如果我可以将下载的数据存储在 Assets 目录中,那将是理想的,但恐怕一旦生成 apk 文件, Assets 就会被“锁定”并且无法轻易扩展(或者可以吗?)如果我将它们存储在手机的卡(或内置内存),它们也可以被媒体播放器或画廊等其他应用程序访问,不是吗?
  • 如果我可以将包作为单个文件下载,那就太好了——是否可以通过内置方法将其打包并将其存储为包含打包(因此可读)子文件夹和文件的文件夹?
  • 下载应用程序后,它是一个 apk 文件。因此,应该可以将示例数据(即与应用程序一起下载)与稍后将要下载的数据放在同一位置。我怎样才能确保这一点。
  • 数据可能非常大,因此无法在下载后立即将所有数据都包含在 Assets 文件夹中并根据用户的操作解锁
  • 下载数据后,它们必须离线工作(即用户必须能够在没有互联网访问的情况下显示它们;因此无法在服务器上检查用户的身份 - 他们可以简单地显示他们所知道的任何内容以前下载过)

Example (for clarification purposes): have an application able to display recipes. It does not contain any or just a few after installation. You should be able to download recipes (one by one) from a server (each having a certain file structure stored in a seperate directory). Once they are downloaded, they become an integral part of the application and always accessible for the user even if the use the airplane mode of their phone.

希望它至少有一定意义(如果没有,我可以进一步澄清问题)。我找到了一些关于如何处理存储在 Assets 中的数据以及如何处理 SD 卡上的数据的教程,但没有一个与这个特定主题有关。

最佳答案

  1. 您可以将您的日期存储在您的应用程序数据文件夹中,基本上它只对您的应用程序可用。如果你想防止你的数据被复制到另一部手机,在第一次运行时生成一个随机的 UUID,然后用它来加密你存储在数据文件夹中的数据。另一部手机将具有不同的 UUID 和不同的加密 key ,因此尝试复制加密数据毫无意义。您甚至可以使用非对称加密并将生成的(公共(public)) key 发送到服务器,让服务器对您的数据进行编码并以加密形式将其发回,从而完全防止您的数据暴露。

  2. assets/ 文件夹通常是只读的,您只能在构建步骤中将数据放在那里。

  3. 将您的文件制作成 .zip 文件 -- 这些文件很紧凑,您可以使用 java.util.zip.ZipFile

    轻松读取文件和文件夹以及您需要的任何内容/li>
  4. 示例数据进入assets文件夹,您可以在第一次运行时将其复制到data文件夹。

  5. 一旦您下载数据并将其保存到设备,我看不出您的应用程序无法离线工作的任何原因

关于android - 将(付费)内容下载到 Android 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13359429/

相关文章:

java - 放大标记谷歌地图 V2

android - Android App 更新的 Delta 更新

swift - 定时器完成 block 中的变量未更新

r - R中的鼠标包,更新到鼠标3.0后,mipo对象不再返回方差协方差矩阵

删除 ACRA 后,android 找不到符号类 RequiresApi

android - Glide : load image to push notifications

android - MapView 不显示图 block - 调试策略?

jquery - 通过 jQuery 下载八位字节流

ruby-on-rails - 上传/下载文件 - Ruby On Rails 系统

java - 如何使用Java在线下载mp3文件?