更新了Play商店后,Google Play应用内结算API版本不到3

时间:2020-11-01 11:43:15

标签: android google-play-services play-billing-library

我正在使用Google Play结算库在我的应用中提供一些应用内购买。一切工作正常,但是我从Crashlytics收到一些用户(主要是使用三星设备)的错误消息“ Google Play应用内结算API版本小于3”。

我搜索了类似的问题,发现这可能是由于安装了过旧版本的Google Play商店或未使用Google帐户正常登录引起的。问题在于,在许多情况下,由于与Billing Service的首次连接成功,所以已安装的Play商店版本为最新版本,并且帐户已正确登录。

例如,安装了Play服务的20.39.15版和Play商店的22.4.29-21版的用户会遇到这种错误流:

  • 实例化BillingClient
  • 致电billingClient.startConnection
  • 已收到带有响应代码onBillingSetupFinished的回调OK
  • 查询购买并获得成功的回复

几秒钟后:

  • 收到了对onBillingServiceDisconnected 3次呼叫(此方法在我的实现中没有任何作用)
  • 通过onBillingSetupFinished 3和responseCode收到了对debugMessage的呼叫:“ Google Play应用内结算API版本小于3”

这是我正在使用的代码的一部分,为清楚起见,我省略了日志记录:

class BillingManager(
    private val application: Application
) : PurchasesUpdatedListener, BillingClientStateListener {

...

    init {
        billingClient = BillingClient.newBuilder(application.applicationContext)
                .enablePendingPurchases()
                .setListener(this)
                .build()
        connectToPlayBillingService()
    }

    private fun connectToPlayBillingService() {
        if (!billingClient.isReady) {
            billingClient.startConnection(this)
        }
    }

    override fun onBillingSetupFinished(billingResult: BillingResult) {
        if (billingResult.responseCode == BillingResponseCode.OK) {
            queryPurchasesAsync()
        } else {
            handleBillingException(BillingException("Billing connection error", billingResult))
        }
    }

   override fun onBillingServiceDisconnected() {
        Log.w(TAG, "onBillingServiceDisconnected")
    }

...

}

这是三星设备的问题吗?为什么当我只打一次onBillingSetupFinished时就接到多个打给startConnection的电话?

0 个答案:

没有答案
相关问题