我正在使用普通驱动器2示例在我的第一个应用程序中实现In App Billing。
我的简单实现:该应用程序是免费的,可以通过提供一些附加功能的应用程序内计费功能升级到高级版本。 这些功能处于不同的活动中,有时只有购买了赠品才能执行一项操作,有时该活动看起来有所不同。 因此,我只能有两种不同的状态:基本或高级。
我阅读了很多有关此主题的内容,但仍有一些疑问。 我想很多来自stackoverflwo的答案都属于App Billing中的一种较旧的实现(例如这样的: 如何最好地在本地保存InApp购买状态? )。
现在我的问题是:我必须检查用户在其他活动中是否具有高级身份。 在不总是查询购买量(性能)的情况下,最佳做法是什么? 可以检查一次并在整个应用程序中使用它吗? 有人有类似的代码示例吗? 我以为这可能是一个常见的实现,但是什么也没找到...
顺便说一句:检查用户购买的保险费的正确方法是从BillingClint购买的queryPurchases-正确吗?
非常感谢您的帮助和想法!
是的,您不应该一直这样查询。 您应该在用户购买您的应用内商品后立即检查应用的启动情况。
您应该有一个单例存储库,可以将其注入/传递到所有重要的活动中。 活动应向该存储库询问当前的购买状态(即:已购买,未购买,未知)
如果由于某种原因无法在线检查,则可能应该实施重试行为。
是的,queryPurchases最好,因为它不需要网络。 如果使用Billing 2.0或更高版本,请别忘了确认购买。