Я обновил библиотеку Android Billing до версии 2.0 (выпущено в этом месяце).
В дополнение к незначительным изменениям (бесполезно сообщать здесь), я отредактировал эту строку для поддержки новой версии библиотеки:
cl = BillingClient.newBuilder(mActivity).setListener(this).build();
таким образом:
cl = BillingClient.newBuilder(mActivity).enablePendingPurchases().setListener(this).build();
, поскольку, как указано в примечаниях к выпуску, требуется enablePendingPurchases()
(и без этого приложения происходит сбой).
Чтобы заставить все Skus выполнять удаление методов для жесткого кодирования Sku (честно говоря, я не знаю, как их удаление должно улучшить что-либо), я попытался выполнить запрос, используя этот код querySkuDetails()
:
SkuDetailsParams.Builder spb = SkuDetailsParams.newBuilder();
cl.querySkuDetailsAsync(spb.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult br, List<SkuDetails> ls) {
}
});
Но код ответа BillingResult
всегда равен 5 DEVELOPER_ERROR
, если я помещаю вызов метода в onBillingClientSetupFinished
.
Предыдущая версия не имеет проблем, и мне интересно, если я что-то упустил для правильной поддержки новой версии.
Биллинговая служба может подключиться к своему бэкэнду, но эта операция по какой-то причине завершается неудачно. Кажется, ошибка в том, как я использую querySkuDetails()
, потому что onSkuDetailsResponse
всегда возвращает код 5 DEVELOPER ERROR
, несмотря на то, что код состояния, который я получаю в onBillingSetupFinished
, равен OK
.