未收到 SkuDetails 列表
Not receiving SkuDetails List
我正在尝试测试我正在开发的应用的应用内订阅。问题是 SkuDetails 列表为空。我在文档中读到必须先将应用程序发布到 alpha,然后才能测试订阅内容。
据我了解,在应用程序发布到 alpha 后,我可以在设备上测试具有相同版本的构建并可以进行调试等等。我不需要从 alpha 下载发布版本。
一个可能的问题是应用程序似乎需要 Google 批准才能发布到 alpha(它具有待发布状态)。我不明白需要批准,因为它只是一个 alpha 版本。
现在我只是想获取 SkuDetails 列表。在 GooglePlay 控制台中,我设置了一个订阅并将其设置为活动。代码明智我有这个功能:
fun setupBilling(context: Context, callback:
(result: BillingResult,skuDetailsList: List<SkuDetails>) -> Unit) {
billingClient = BillingClient.newBuilder(context)
.enablePendingPurchases()
.setListener(this).build()
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) {
querySkuDetails(billingClient, callback)
}
}
override fun onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
})
}
querySkuDetails 函数如下所示:
private fun querySkuDetails(client: BillingClient,
callback: (result: BillingResult,
skuDetailsList: List<SkuDetails>) -> Unit) {
val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS)
client.querySkuDetailsAsync(params.build()) {
billingResult, skuDetailsList ->
callback(billingResult,skuDetailsList)
val msg = billingResult.debugMessage
Log.d(TAG, "List Size: ${skuDetailsList.size}")
Log.d(TAG, msg)
}
}
在上面的代码中,skuList 是一个字符串列表,其中有一个元素是我在 Play 控制台中的订阅标识符。
没有 debugMessage,列表大小始终为 0,即使它应该是 1。
感谢任何帮助。
谢谢!
拉兹万
我在 Google Play 上上传 Alpha 版本 4 天后,Google 批准了它,现在一切正常。所以我唯一要做的就是等待 Google 批准该应用程序(即使它只是一个 alpha 版本)。
我正在尝试测试我正在开发的应用的应用内订阅。问题是 SkuDetails 列表为空。我在文档中读到必须先将应用程序发布到 alpha,然后才能测试订阅内容。 据我了解,在应用程序发布到 alpha 后,我可以在设备上测试具有相同版本的构建并可以进行调试等等。我不需要从 alpha 下载发布版本。 一个可能的问题是应用程序似乎需要 Google 批准才能发布到 alpha(它具有待发布状态)。我不明白需要批准,因为它只是一个 alpha 版本。
现在我只是想获取 SkuDetails 列表。在 GooglePlay 控制台中,我设置了一个订阅并将其设置为活动。代码明智我有这个功能:
fun setupBilling(context: Context, callback:
(result: BillingResult,skuDetailsList: List<SkuDetails>) -> Unit) {
billingClient = BillingClient.newBuilder(context)
.enablePendingPurchases()
.setListener(this).build()
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) {
querySkuDetails(billingClient, callback)
}
}
override fun onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
})
}
querySkuDetails 函数如下所示:
private fun querySkuDetails(client: BillingClient,
callback: (result: BillingResult,
skuDetailsList: List<SkuDetails>) -> Unit) {
val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS)
client.querySkuDetailsAsync(params.build()) {
billingResult, skuDetailsList ->
callback(billingResult,skuDetailsList)
val msg = billingResult.debugMessage
Log.d(TAG, "List Size: ${skuDetailsList.size}")
Log.d(TAG, msg)
}
}
在上面的代码中,skuList 是一个字符串列表,其中有一个元素是我在 Play 控制台中的订阅标识符。
没有 debugMessage,列表大小始终为 0,即使它应该是 1。
感谢任何帮助。
谢谢! 拉兹万
我在 Google Play 上上传 Alpha 版本 4 天后,Google 批准了它,现在一切正常。所以我唯一要做的就是等待 Google 批准该应用程序(即使它只是一个 alpha 版本)。