Следуя официальному руководству Я разработал этот код для подключения к Google Play Billing:
BillingManager(Context context, BillingListener listener) {
this.listener = listener;
billingClient = BillingClient.newBuilder(context).setListener(this).build();
startConnection(null);
}
private void startConnection(final Runnable runnable) {
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(int responseCode) {
switch (responseCode) {
case BillingClient.BillingResponse.OK:
connected = true;
executeRequest(runnable);
break;
default:
listener.onError(STAGE.CONNECTION, responseCode);
}
}
@Override
public void onBillingServiceDisconnected() {
connected = false;
}
});
}
Этот код вызывается в методе onCreate()
моей Деятельности.Ответ, который я получаю всегда:
BILLING_RESPONSE_RESULT_DEVELOPER_ERROR
Однако тот же код выполняется, когда пользователь делает запрос на покупку.Тогда ответ всегда OK
.Я запускаю соединение по методу onCreate()
, чтобы восстановить покупки, которые пользователь мог совершить ранее.Из официального руководства :
Вызовите queryPurchases () как минимум дважды в своем коде:
Каждый раз, когда ваше приложение запускается, чтобы вы могли восстановить любые покупки, которыепользователь сделал с момента последней остановки приложения.
Является ли метод onCreate()
слишком рано, чтобы начать соединение?Если так, когда я должен сделать это?Если нет, есть ли проблема с моим кодом?