3

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

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

4

3 回答 3

1

我的想法如下:

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

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

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

于 2010-06-10T02:37:21.777 回答
1

答案是:这不能用 Android Market 解决,因为 Market 不允许上传两个具有相同包名的应用程序。不能欺骗 Android 安装高级版而不是免费版并将其视为升级。

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

于 2010-06-17T02:58:19.227 回答
1

WRITE_EXTERNAL_STORAGE免费应用程序可以公开 a ContentProvider,付费应用程序可以使用它来传输数据,而不是在 SD 卡中备份数据库(如 @cdonner 所建议的那样),这需要权限。

请务必使用权限来保护您的内容。

于 2013-01-16T13:05:17.270 回答