gpt4 book ai didi

java - 在 Android 中的演示版和完整版之间共享保存游戏

转载 作者:行者123 更新时间:2023-12-02 00:06:25 25 4
gpt4 key购买 nike

我目前正在开发一款 Android 游戏,我的目标是创建该游戏的免费/演示版本,以便用户可以尝试。但我还希望演示版中的游戏存档能够自动导入完整版本

我存储在应用程序私有(private)存储中的保存游戏基本上是映射多个Java对象的JSON字符串。用户可以根据需要创建任意数量的“新游戏”,并且为他开始的每个游戏都有一个“自动保存”和一个“手动保存”文件。为了跟踪所有文件,我有一个包含文件名和一些附加信息(如玩家姓名等)的列表。

所以基本上有很多小文件处理保存游戏。这可能不是最优雅的方法,但效果很好。

这是我的问题:假设用户已经在演示版本中开始了游戏(因此演示版本的私有(private)存储中将保存 3 个文件)。 我现在如何从完整版本中访问这些文件?

这两个版本不会有太大不同。尽管演示版有限制,但它们实际上是相同的。但我会使用相同的代码库。

我知道在这个论坛和其他地方有很多关于这个问题的问题,但我无法找到合适的解决方案。我能找到的所有内容都涉及:

  • 将文件存储在全局可读的存储中(例如 SD 卡)或
  • 使用SharedPreferences

但我既不希望用户能够读取保存游戏(甚至更改它 - 因为这可能会搞乱游戏) - 所以没有 SD 卡,我也不能使用 SharedPreferences,因为每个保存游戏都有大约。 200 行代码(许多 Java 对象转换为 JSON)并将所有这些值和对象映射到用于 SharedPreferences 的某种键值结构对我来说似乎是不可能的。

这一切都搞砸了,还是有人有想法?

感谢您抽出宝贵的时间,期待听到您的想法!

  • 克里斯托夫

最佳答案

所以我只看到 2 个解决方案:

第一个是 WorldReadable SharedPreferences。你说,你存储 JsonStrings,所以不需要进一步向下映射它们,如果你可以从你的 json 字符串中创建对象(我喜欢使用 Gson 进行这种工作),你可以简单地存储这些SharedPreferences 中的字符串。

第二种方法是麻烦 ContentProviders并实现 ContentResolver 接口(interface)。这是我可以想象的对于您的用例来说最安全的方式,但是您必须为其实现很多

关于java - 在 Android 中的演示版和完整版之间共享保存游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765560/

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