我在市场上有一款售价 0.99 美元的应用程序。我想实施应用内计费,以便我可以免费提供它,并可以选择以一定价格解锁某些功能。我已经修改了代码以允许这样做。问题是......我如何将已经购买该应用程序的 1000 多人标记为已购买并解锁所有功能?
问问题
264 次
1 回答
3
如果您使用某种持久性存储,您可能能够解决这个问题。
对于 SharedPreferences,在第一次运行时,使用SharedPreferences.contains()
. 如果它包含它,则该应用程序必须已经安装。如果没有,请设置另一个将用户标记为新(免费)的首选项,然后再设置一个,这样它就不会每次都进行检查。
这可能仅在首选项没有“默认”值时才有效,我不完全确定在 xml 中设置默认值是否会将其标记为包含。
如果您有任何要转移到 SD 的资产或任何类似的一次性设置,您可以做类似的事情。在第一次做之前检查它是否已经完成。
如果您使用的是 SQLite 数据库,则可以增加数据库版本,onUpgrade()
如果来自当前版本(或更早版本),则将其标记为“付费”。
就像我说的,这是一个 hack,但我不知道有任何“官方”方式来检查应用程序安装是升级还是初始安装。不过,这里有一些陷阱。例如,如果以前的付费客户在安装新版本之前完全卸载,或者如果它在新设备上......
于 2012-12-28T22:26:11.150 回答