从付费到免费w /应用内结算

Rog*_*ger 6 android in-app-purchase

我在市场上有一个价格为0.99美元的应用程序.我想实现应用内结算,以便我可以免费提供,并可选择以某种价格解锁某些功能.我已经修改了代码以允许它.问题是......我如何标记购买该应用程序的1000多人购买并解锁所有功能?

Geo*_*its 3

如果您使用某种持久存储,您也许可以解决这个问题。

对于 SharedPreferences,在第一次运行时,使用 检查您的首选项之一SharedPreferences.contains()。如果包含它,则该应用程序必须已经安装。如果没有,请设置另一个首选项,将用户标记为新用户(免费),然后再设置一个首选项,这样就不会每次都进行检查。

这可能仅在首选项没有“默认”值时才有效,我不完全确定在 xml 中设置默认值是否会将其标记为包含。

如果您有任何资产转移到 SD,或任何类似的一次性设置,您可以执行类似的操作。只需在第一次执行之前检查一下是否已经完成。

如果您使用的是 SQLite 数据库,则可以增加数据库版本,并在onUpgrade()来自当前版本(或更早版本)时标记为“付费”。

就像我说的,这是一个黑客,但我不知道有任何“官方”方法来检查应用程序安装是升级还是初始安装。不过,这里也存在一些陷阱。例如,如果以前的付费客户在安装新版本之前完全卸载,或者如果它在新设备上......