BillingClient всегда возвращает SERVICE_DISCONNECTED

Таким образом, у меня есть клиент для выставления счетов

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

Я тогда звоню

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

по какой-либо причине точка останова на лесной линии всегда возвращается отключенной. Кто-нибудь может дать представление или пример того, как я это сделаю?

4 ответа

Решение

Оказывается, я не использовал версию моего apk, которая была подписана с правильной нумерацией версий и тому подобное. Как только я исправил это, я смог подключиться к игровым сервисам и выяснить, что я хотел.

Я сталкивался с этой проблемой. Также обязательно начните соединение:

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


        });

Я знаю, что уже слишком поздно отвечать на этот вопрос, но мне не хватало этого разрешения в манифесте,

      <uses-permission android:name="com.android.vending.BILLING" />

надеюсь, что это поможет кому-то

Если вы используете пользовательскую прошивку или устройство с root-правами, это, вероятно, не сработает.

Запустите образ системы, на котором предустановлено клиентское приложение Google Play . Если Google Play не предустановлен в образе системы, ваше приложение не сможет обмениваться данными с сервером лицензирования Google Play.

https://developer.android.com/google/play/licensing/setting-up

Другие вопросы по тегам