在调用 Purchase.getProducts() 方法时,传入所有需要查询的产品的标识符,然后遍历返回的 ProductDetailsResponse 对象集合,找到对应的产品信息。
以下是一个示例代码:
List skuList = new ArrayList<>();
skuList.add("product_sku_1");
skuList.add("product_sku_2");
skuList.add("product_sku_3");
billingClient.querySkuDetailsAsync(
SkuDetailsParams.newBuilder()
.setSkusList(skuList)
.setType(BillingClient.SkuType.INAPP)
.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult, List skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
for (SkuDetails skuDetails : skuDetailsList) {
// 根据 skuDetails.getSku() 来判断是哪个产品
// 然后使用 skuDetails.getPrice() 和 skuDetails.getDescription() 等方法获取产品的价格、描述等信息
}
}
}
}
);
在上述示例中,我们将所有需要查询的产品的标识符存储在一个 List 中,并传递给了 BillingClient.querySkuDetailsAsync() 方法。该方法返回一个 SkuDetailsResponseListener 对象,我们在该对象的 onSkuDetailsResponse() 方法中遍历返回的 SkuDetails 集合,根据 getSku() 方法来判断每个 SkuDetails 对象对应的是哪个产品,然后使用 getPrice() 和 getDescription() 等方法获取产品的信息。