BillingClient предлагает метод с именем isFeatureSupported (). Документация для возвращаемого int:
BILLING_RESULT_OK if feature is supported and corresponding error code otherwise.
Мне не удалось найти BILLING_RESULT_OK для определения нигде. Его нет среди констант, определенных в BillingClient.BillingResponse. Должен ли я просто использовать
BillingClient.BillingResponse.OK
?
Я считаю, что это опечатка в документации. Вместо этого вы должны использовать BillingResponse.OK: https://developer.android.com/reference/com/android/billingclient/api/BillingClient.BillingResponse#ok
Вы можете увидеть это в этом примере: https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive_v2/shared-module/src/main/java/com/example/billingmodule/billing/BillingManager.java#L126
Для меня использование BillingClient.BillingResponse.OK не сработало, оно всегда действует так, как если бы функция не поддерживалась. Мне пришлось использовать это:
int response = billingClient.isFeatureSupported(BillingClient.FeatureType.SUBSCRIPTIONS);
if (response == BillingClient.BillingResponse.FEATURE_NOT_SUPPORTED) {
Toast.makeText(this, "Feature not supported", Toast.LENGTH_SHORT).show();
return;
}
в 2019 году работает 'com.android.billingclient:billing:2.0.1'
заменять:
BillingResponse.OK
с участием
BillingClient.BillingResponseCode.OK
Вся документация кажется очень неточной. Шокирует то, насколько слабо с этим справляется Google.
В 2019 BillingClient.BillingResponseCode.OK на отлично!
Да, все руководства по-прежнему говорят «BillingResponse». Интересно, почему они его поменяли?
Итак, вся проверка для "com.android.billingclient: billing: 2.0.3" выглядит так:
public boolean isSubscriptionsSupported() {
if (myBillingClient != null) {
BillingResult isSubscriptionsSupported = myBillingClient.isFeatureSupported(BillingClient.FeatureType.SUBSCRIPTIONS);
return isSubscriptionsSupported.getResponseCode() == BillingClient.BillingResponseCode.OK;
}
return false;
}
import com.android.billingclient.api.BillingClient.BillingResponse; Не работает! ошибка: не удается найти класс символа BillingResponse