我有以下情况:
用户在其设备 A上的应用程序上购买订阅。稍后,他购买了设备 B并使用设备 A的相同帐户对其进行配置。他在设备 B上安装了相同的应用程序,但他在设备 A 上进行的购买在设备 A上不可用。
如何让设备 B识别购买?我尝试使用BillingClient#purchaseHistoryResponseListener,但即使它确实返回了最近的购买,也无法说购买是否处于活动状态(如果它作为 SUBS)或者它是否还没有被消费(如果它是 INAPP) .
我有以下情况:
用户在其设备 A上的应用程序上购买订阅。稍后,他购买了设备 B并使用设备 A的相同帐户对其进行配置。他在设备 B上安装了相同的应用程序,但他在设备 A 上进行的购买在设备 A上不可用。
如何让设备 B识别购买?我尝试使用BillingClient#purchaseHistoryResponseListener,但即使它确实返回了最近的购买,也无法说购买是否处于活动状态(如果它作为 SUBS)或者它是否还没有被消费(如果它是 INAPP) .
如果我正确理解您的问题,您将在queryPurchases()中获得此信息。您必须知道,这会从缓存中获取信息。因此,您首先需要从设备 B 进行queryPurchaseHistoryAsync()调用,如果此调用成功,则会刷新缓存,一旦成功,您就可以在queryPurchase()中获取所需的信息。
文档中没有提到此方法刷新缓存,但是如果您在此处引用,此技巧似乎对我和其他一些人有用