возвращает только текущие активные подписки. Он немедленно возвращает результат в кеше.

т, я использую новую библиотеку биллинга Play для подписок на приложения.https://developer.android.com/google/play/billing/billing_library.html

Все работает отлично, и я могу подписаться на продукт. Но я не нашел способов проверить состояние покупки по подписке. Я имею в виду, активен ли он или истек.

В документации говорится: «Затем вы можете вызывать различные методы для объекта« Покупка », чтобы просмотреть соответствующую информацию об элементе, такую ​​как состояние или время покупки.

Но в объекте покупки нет метода состояния покупки, проверьте ссылку нижеhttps://developer.android.com/reference/com/android/billingclient/api/Purchase.html

Посмотрите на это видео тоже:https://www.youtube.com/watch?v=9chvh1WYCvw&feature=youtu.be&t=301

Как можно проверить состояние покупки?

Ответы на вопрос(2)

и вы, возможно, решили его. Я только начал использовать новую библиотеку, и у меня есть тот же вопрос. Читая javadoc для класса «Покупка», я думаю, что вы должны использовать:

isAutoRenewing()

Это вернет false для любой подписки, которая была отменена. Он возвращает true для любой подписки, которая активна или находится в льготном периоде.

Просто обновление к этому, Это не будет работать в случае подписки, которая была отменена и срок ее действия не истек.

Мне показалось странным, что вышеприведенные комментаторы, похоже, не согласны. Дальнейшее расследование показывает, что два разных запроса на покупку дают разные результаты - что-то, что Javadoc, кажется, не проясняет.

queryPurchaseHistoryAsync(BillingClient.SkuType.SUBS, listener)

будет, как объясняет его javadoc, вернуть все, включая все просроченные подписки. Используя это, кажется, нет способа различать активные и неактивные подписки. Это возвращает историю, как это в настоящее время на серверах Google.

queryPurchases(BillingClient.SkuType.SUBS)

возвращает только текущие активные подписки. Он немедленно возвращает результат в кеше.

Решение Вопроса
 romaneso22 февр. 2018 г., 11:49
Я не могу подтвердить это. Для меня подписка все еще входит в список.
 jomin v george06 янв. 2018 г., 08:03
Я наткнулся на то же решение. Список покупок содержит только активные подписки. Если размер ПокупкиList равен нулю, это означает, что нет активной подписки.
 sokarcreative27 мар. 2018 г., 08:39
Я согласен с @romanescu. Та же проблема: как определить, когда заканчивается подписка? Если подпрограмма всегда видна в списке, они должны добавить состояние «expired / active» или что-то подобное
 jomin v george02 авг. 2018 г., 10:54
После истечения срока действия подписки она больше не будет доступна в этом списке (отмените подписку из приложения PlayStore, дождитесь ее истечения). Работает идеально для меня.
 Mehul Kanzariya04 нояб. 2018 г., 11:04
@romaneso Я столкнулся с той же проблемой. Вы нашли какое-нибудь решение?

Ваш ответ на вопрос