Да, есть. Просмотрите это >> 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?)
Имейте в виду, что вы можете получить только предварительную цену за подписку в продукте приложения!
person
LekeOpe
schedule
27.09.2017