应用内购买 - 在初始化应用之前检查购买的商品

时间:2014-06-20 19:57:23

标签: android in-app-purchase

我有以下问题:

我的应用程序可以免费下载,但可以通过应用程序内购买进行升级。 购买工作正常。现在我在启动时检查应用程序是否升级,以便初始化免费或升级的功能。

默认情况下,应用程序假定它未升级,使用默认设置为“false”的bool。启动时,应用程序会查询购买的商品,并在购买升级版本时将bool设置为true。

问题是谷歌与服务的连接是异步完成的。这意味着在启动时有些情况下应用程序被认为是未升级的,因为异步服务连接需要太长时间。

在检查应用版本之前是否可以等待服务连接完成? 文档说,使用API​​-Version 3,购买信息将在本地缓存。是否可以在不使用异步服务连接的情况下检索缓存的信息?

当然,我可以使用首选项自行保存升级信息,但如果是用户 喜欢在其他设备上安装该应用程序,升级版本将被视为未升级。 是否有人遇到同样的问题并找到了解决这个问题的方法?

1 个答案:

答案 0 :(得分:0)

如果你看here

它表示"版本3 API调用将通过缓存查找而不是通过网络连接提供给Google Play"。

含义,Google Play服务会优化您返回缓存结果的请求(如果有的话),尽管这会因您的应用和Google Play服务之间的进程间通信而异步发生。

我建议您的应用安装在新设备上。开始就像加载免费版本一样,同时检查"背景"中的先前购买如果用户已经拥有升级,则进行优雅升级。