如何在保留任何数据的同时处理从免费版到付费版的应用程序升级

时间:2010-06-10 01:58:19

标签: android versioning google-play

这是上下文。 我想要一个免费版本和相同应用程序的高级版本。当人们购买应用程序时,我希望他们能够“升级”而不会丢失他们的数据,即高级版本应该安装在免费版本上。 我想使用相同的代码库,只需切换设置即可构建高级版本。 Andoid Market不允许我将免费应用转换为付费应用,因此无法提供简单的选项。

如果有人成功尝试过,我很好奇。 Android Market如何识别应用程序 - 它会认为高级版本是不同的应用程序并且只是并行安装吗?

3 个答案:

答案 0 :(得分:1)

我的想法如下:

  • 付费版本的android:versionCode应该是免费的android:versionCode +1
  • 两者都应该有相同的包装。

安装付费版本后,它将替换免费版本。 实际上它会更新它,因为它有更高的android:versionCode

由于两者都有相同的包,它们将被放置在同一个文件夹(/data/data/your.package)中,因此付费应用程序将能够访问免费的应用程序数据库。

答案 1 :(得分:1)

答案是:Android Market无法解决此问题,因为Market不允许上传两个具有相同包名称的应用。 Android不能被欺骗在免费版本上安装高级版本并将其视为升级。

好消息:添加数据库备份/恢复功能(将数据库复制到SD卡并返回到app文件夹)只需要几行代码。我的用户必须并行安装这两个版本,从免费版本备份数据库并将其恢复到高级版本。

答案 2 :(得分:1)

免费应用程序可以公开WRITE_EXTERNAL_STORAGE,付费应用可以提供ContentProvider,而不是将数据库备份到SD卡(来自@cdonner建议)(需要{{1}}权限)。用来传输数据。

请务必use permissions确保您的内容安全。