Итак, у меня есть биллинговый клиент, с которым я создаю экземпляр
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 ");
}
});
по какой-то причине точка останова на деревянной линии всегда возвращается отключенной. может ли кто-нибудь дать представление или пример того, как я бы это сделал?
Я сейчас сталкиваюсь с этим, и это сводит меня с ума.
Посмотрите, действительно ли ваш BillingClient готов, пожалуйста, обратитесь к моему ответу в приведенной ниже теме stackoverflow.com/questions/56332090/…
Оказывается, я не использовал версию своего apk, которая была подписана с правильной нумерацией версий и т. д. Как только я исправил это, я смог подключиться к игровым сервисам и выяснить, что мне нужно.
Как ты это исправил?
Это просто обеспечение того, чтобы версионирование в сервисах apk и play было одинаковым. У меня есть различные журналы и то, что не для этого в приложении, поэтому просто убедитесь, что они соответствуют тому, что говорит игровая консоль
@ 1tSurge вы имеете в виду про номер версии приложения и код версии? или, может быть, версия зависимости биллинга, добавленная в build.gradle? Иначе где проверить?
Мне тоже любопытно, я столкнулся с той же проблемой и не смог ее исправить. Что вы имеете в виду под одинаковыми версиями apk и play-сервисов?
Я столкнулся с этой проблемой. Также обязательно запускайте подключение:
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.
}
});
Сначала я подумал, что ваш комментарий бесполезен, однако я смог лично убедиться, что если вы получаете ответ SERVICE_DISCONNECTED, вам нужно (снова) вызвать метод startConnection (). Недурно!
я столкнулся с той же проблемой. как вы ее решили?