如何在第二台设备(INAPP和SUBS)上恢复购买

时间:2020-03-31 10:34:02

标签: android android-billing billingclient

我有以下情况:

用户在其设备A 上的应用上购买了订阅。后来,他购买了设备B ,并使用与设备A 相同的帐户进行配置。他在设备B 上安装了相同的应用程序,但是他在设备A 上进行的购买在那里不可用。

我怎样做才能使设备B 识别购买的商品?我尝试使用BillingClient#purchaseHistoryResponseListener,但即使它确实返回了最近的购买,也无法说出该购买是否处于活动状态(如果是SUBS)或尚未消费(如果是INAPP)。

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,您将在queryPurchases()中获得此信息。正如您已经知道的那样,这将从缓存中获取信息。因此,您首先需要从设备B发起queryPurchaseHistoryAsync()调用,如果调用成功,这将刷新缓存,一旦成功,您就可以在queryPurchases()中获取所需的信息。

文档中没有提到该方法刷新缓存,但是如果您引用here

,此方法似乎确实对我和其他人有用。