BillingClient始终返回SERVICE_DISCONNECTED

1tS*_*rge 6 android android-billing play-billing-library

所以我有一个实例化的计费客户

billingClient = BillingClient.newBuilder(this).setListener(this).build();
Run Code Online (Sandbox Code Playgroud)

然后我打电话

billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(int responseCode) {
            //TODO: use this for stuff
            com.android.billingclient.api.Purchase.PurchasesResult result;
result = billingClient.queryPurchases(BillingClient.SkuType.SUBS);
    Timber.d(result.toString());

        }

        @Override
        public void onBillingServiceDisconnected() {
            //TODO: use this for stuff
            Timber.d("something went wrong ");
        }
    });
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,木材线上的断点总是返回断开状态。谁能提供我将如何做的见解或示例?

Pao*_*olo 9

我遇到了这个问题。还要确保启动连接:

mBillingClient = BillingClient.newBuilder(mContext).setListener(purchasesUpdatedListener).build();

        mBillingClient.startConnection(new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) {
                if (billingResponseCode == BillingClient.BillingResponse.OK) {

                    Log.d(TAG, "onBillingSetupFinished: BillingClient.BillingResponse.OK ");

                }


            }
            @Override
            public void onBillingServiceDisconnected() {
                // Try to restart the connection on the next request to
                // Google Play by calling the startConnection() method.
            }


        });
Run Code Online (Sandbox Code Playgroud)

  • 起初我认为您的评论没有帮助,但是我已经能够自己检查,如果您收到 SERVICE_DISCONNECTED 响应,那么您需要(再次)调用 startConnection() 方法。竖起大拇指! (2认同)

1tS*_*rge 3

事实证明,我没有使用使用正确版本号等签名的 apk 版本。一旦我修复了这个问题,我就能够连接到播放服务并弄清楚我想要什么。

  • 你是怎么解决的? (4认同)