我正在使用新的播放计费库进行调查,我担心的一件事是产品入门价格。
我想知道是否有一种方法可以通过新图书馆检索入门价格。据我所知,这可以使用Google Play应用程序内计费API进行,如此stackoverflow问题所述,但是我找不到使用新计费库的类似方法。
之前有人来了吗?
是的,有。请查看此>> 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 SkuRowData(sku: String?, title: String?, price: String?, introductory_price: String?, description: String?, type: String?)
请注意,您只能在应用产品中获得订阅的介绍价格!
您应该只查询sku详细信息,然后使用结果列表中的项目使用getIntroductoryPrice()方法。
P.S。它最近被添加到1.0版本中。因此,如果您在发布后的第一天内获得了库,则应清除Gradle Cache和/build
文件夹重新下载更新的版本。