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

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

有帮助吗?

解决方案 2

答案是:这是不是可以解决与Android市场,因为市场不允许两个应用程序具有相同包名称上传。 Android的不能被欺骗了免费版本安装高级版本,并把它作为升级。

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

其他提示

我的想法如下:

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

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

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

代替数据库备份到和从SD卡(如由@cdonner建议的),这需要WRITE_EXTERNAL_STORAGE许可的,自由的应用程序可以暴露ContentProvider,其付费应用程序可用于传输数据。

请务必使用权限,以确保您的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top