在不同的包/应用之间保存数据

时间:2012-03-18 10:07:34

标签: java android sharedpreferences

我有免费和付费应用。如果用户首先尝试free version并获得例如10 gold,然后升级到付费版本,我希望他保留10 gold而不是重新开始。

那么有没有办法在应用之间共享和访问数据?而且我不想将其保存到SD card的根目录,因为用户可以通过这种方式轻松修改它。

4 个答案:

答案 0 :(得分:1)

我认为一些开发人员通过使用他们的付费应用程序来检查付款(如果它已经安装,你已付费)并在免费版本中保留所有内容(代码明智)来规避这一点。您也可以只加密/解密写入SD卡的数据。这也可以让用户更容易备份/恢复这些保存(如果重新安装应用程序或类似的东西,任何东西都不会丢失)。

答案 1 :(得分:0)

您可以在应用程序数据文件夹中创建文件。并保存在那里。

 /data/data/your_complete_package/your_data_filename

当然,您需要使用此手机独有的功能对其进行加密。

因此他们无法将此文件移至另一部手机使用。

请注意,应用数据文件夹下的文件将与您的应用一起卸载。

答案 2 :(得分:0)

我认为Android内容提供商可能会解决此问题: http://developer.android.com/guide/topics/providers/content-providers.html

  

内容提供商管理对结构化数据集的访问。它们封装了数据,并提供了定义数据安全性的机制。内容提供程序是标准的>接口,它将一个进程中的数据与另一个进程中运行的代码连接起来。

您的应用可以实现ContentProvider并导出您需要共享的数据,而不是您的免费&付费版本可以通过ContentProvider共享数据,就像您访问Google合约一样。

BTW,ContentProvider支持SQLite& XML,这意味着您可以根据需要将其存储在内存或SD卡中。

答案 3 :(得分:0)

我的解决方案是维护某种远程服务器,为用户保存所有数据。用户在进入应用程序时登录,使用服务器进行身份验证,并提供所有可用数据。

任何本地解决方案都不是持久的。如果用户删除了他/她的应用程序该怎么办?如果手机损坏且应用程序无法恢复?

作为任何应用的付费用户,我希望通过不同的设备将付费数据移植。

就这件事而言,只需2美分......