我使用以下方法查询用户的订阅:
public void querySubscriptions() {
Runnable queryToExecute = () -> {
Purchase.PurchasesResult purchasesResult = mBillingClient.queryPurchases(BillingClient.SkuType.SUBS);
if (mBillingClient == null ||
purchasesResult.getResponseCode() != BillingClient.BillingResponse.OK) {
return;
}
mPurchases.clear();
onPurchasesUpdated(BillingClient.BillingResponse.OK, purchasesResult.getPurchasesList());
};
executeServiceRequest(queryToExecute);
}
用户可以随时拥有多个有效订阅。您可以使用 isAutoRenewing
方法检查订阅是否仍然有效。以下是该方法的文档:
指示订阅是否自动续订。如果为 true,则订阅处于活动状态,并将于下一个付款日期自动续订。如果为 false,则表示用户已取消订阅。用户在下一个计费日期之前可以访问订阅内容,并且在那时失去访问权限,除非他们重新启用自动续订(或按照手动续订中描述的方式手动续订)。如果您提供宽限期,则此值对所有订阅保持设置为 true,只要宽限期尚未过期。下一个计费日期每天动态扩展,直到宽限期结束或用户修复其付款方法。