如何处理从免费版本到付费版本的应用程序升级,同时保留任何数据
-
26-09-2019 - |
题
这是上下文。我想要同一个应用程序的免费版本和高级版本。当人们购买该应用程序时,我希望他们能够“升级”而不会丢失数据,即高级版本应安装在免费版本之上。我想使用相同的代码库,只需切换设置即可构建高级版本。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
,其付费应用程序可用于传输数据。
请务必使用权限,以确保您的内容。
不隶属于 StackOverflow