BillingClient always returns SERVICE_DISCONNECTED

2020-08-13 05:11发布

问题:

So I have a billing client which I instantiate with

billingClient = BillingClient.newBuilder(this).setListener(this).build();

I then call

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 ");
        }
    });

for whatever reason the breakpoint on the timber line always returns disconnected. can anyone provide insight or an example to how i would do this?

回答1:

I came across this problem. Be also sure to start the connection:

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.
            }


        });


回答2:

Turns out I was not using a version of my apk that was signed with the right version numbering and such. Once I fixed that I was able to connect to play services and figure out what i wanted.