我必须提供ProductId才能在Android Studio中使用Google play内购系统查询产品详细信息吗?

问题描述 投票:0回答:1

我知道我可以使用以下代码通过提供 ProductId 来查询应用内产品详细信息。

目前我希望查询所有应用内商品详情,是否必须提供所有ProductId?

 fun queryProductDetails() {
        val params = QueryProductDetailsParams.newBuilder()
        val productList = mutableListOf<QueryProductDetailsParams.Product>()
        for (product in LIST_OF_PRODUCTS) {

            productList.add(
                QueryProductDetailsParams.Product.newBuilder()
                    .setProductId(product)
                    .setProductType(BillingClient.ProductType.INAPP)
                    .build()
            )
        }

        params.setProductList(productList).let { productDetailsParams ->
            billingClient.queryProductDetailsAsync(productDetailsParams.build(), mOnProductDetailsResponse)
        }
    }


  private val LIST_OF_PRODUCTS = listOf(BASIC_SUB, PREMIUM_SUB)
android kotlin in-app-purchase
1个回答
0
投票

如果不指定

productId
type
BillingClient.ProductType.INAPP
BillingClient.ProductType.SUBS
),则无法查询所有应用内产品。

如果某些

productId
不存在或提供了错误的
type
,您不会收到错误,而只是返回一个列表,其中仅包含符合这两个条件的产品详细信息。

例如如果问题中的

BASIC_SUB
PREMIUM_SUB
是活跃订阅,那么使用
ProductType.INAPP
查询时您将收到一个空列表,而使用
ProductType.SUBS
查询时您将收到 2 个产品详细信息的列表。

© www.soinside.com 2019 - 2024. All rights reserved.