Android:检查“应用内购买”状态的最佳做法?

时间:2019-06-14 14:38:08

标签: android in-app-purchase

我正在使用普通驱动器2示例在我的第一个应用程序中实现应用内结算。

我的简单实现:该应用程序是免费的,并且可以通过提供一些附加功能的应用程序内计费功能升级到高级版本。这些功能处于不同的活动中,有时只有购买了赠品才能执行一项操作,有时该活动看起来有所不同。所以我只能有两种不同的状态:基本或高级。

我阅读了很多有关此主题的内容,但是仍然有一些疑问。我想很多来自stackoverflwo的答案都属于App Billing中的一种较旧的实现(例如:How to best save InApp purchase status locally?)。

现在我的问题是:我必须检查用户在其他活动中是否具有高级身份。在不总是查询购买量(性能)的情况下,最佳做法是什么?可以检查一次并在整个应用程序中使用它吗?有人有类似的代码示例吗?我以为这可能是一个常见的实现,但是什么也没找到...

顺便说一句:检查用户是否购买了保费的正确方法是从BillingClint购买查询-正确吗?

非常感谢您的帮助和想法!

2 个答案:

答案 0 :(得分:1)

是的,您不应该一直这样查询。您应该在用户购买您的应用内商品之后立即检查应用的启动情况。

您应该有一个单例存储库,您可以将其注入/传递到所有重要的活动中。活动应向该存储库询问当前的购买状态(即:已购买,未购买,未知)

如果由于某种原因无法在线检查,则应该实施重试行为。

答案 1 :(得分:0)

是的,queryPurchases最好,因为它不需要网络。 如果使用Billing 2.0或更高版本,请别忘了确认购买。