Android Play Billing Library:获取产品介绍价?

Android Play Billing Library: get product introductory price?

我正在调查使用新的 Play Billing Library,我担心的一件事是 产品介绍价格

我想知道是否有办法通过新图书馆检索介绍价格。据我所知,可以使用 Google Play In-app Billing API 来完成,如 Whosebug question 中所述,但我找不到使用新的 Billing 库的类似方法。

有没有人遇到过这个问题?

是的,有。请看这个>> https://codelabs.developers.google.com/codelabs/play-billing-codelab/#1

val skuList = arrayListOf("sku_id_of_in_app_product","sku_id_of_in_app_product")
val itemType = SkuType.INAPP // or SkuType.SUBS that corresponds with the skuList
val skuDetailsParams = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(itemType).build()

mBillingClient.querySkuDetailsAsync(skuDetailsParams, object : SkuDetailsResponseListener{
    override fun onSkuDetailsResponse(responseCode: Int, skuDetailsList: MutableList<SkuDetails>?) {
       responseListener.onSkuDetailsResponse(responseCode, skuDetailsList);
   }
})

您的侦听器:您需要使用侦听器,以便在异步查询完成后能够得到响应!

val responseListener = SkuDetailsResponseListener { responseCode, skuDetailsList ->
    if (responseCode == BillingClient.BillingResponse.OK && skuDetailsList != null) {
        val inList = ArrayList<SkuRowData>()
        for (details in skuDetailsList) {
            Log.i(TAG, "Found sku: $details")
            inList.add(SkuRowData(details.sku, details.title, details.price, details.introductoryPrice, details.description, details.type))
         }
     }
 }

SkuRowData 只是一个模型class

class SkuRowData(sku: String?, title: String?, price: String?, introductory_price: String?, description: String?, type: String?)

请注意,订阅应用产品只能获得入门价!

对于结果列表中的项目,您应该只 query SKU details and use getIntroductoryPrice() method

P.S。它是最近添加到 1.0 版本中的。因此,如果您在发布后的第一天就获得了该库,您应该 clear your gradle cache/build 文件夹重新下载更新版本。