У меня есть Android-приложение, в котором пользователи могут приобрести одну покупку в приложении.
Согласно документации Google, при запуске я запускаю queryPurchases()
, чтобы проверить, должно ли приложение запускаться как бесплатная или платная версия.
Вот документ от Google:
Вызовите queryPurchases () как минимум дважды в вашем коде:
Каждый раз, когда ваше приложение запускается такчто вы можете восстановить любые покупки, сделанные пользователем с момента последней остановки приложения.
В вашем методе onResume (), поскольку пользователь может совершить покупку, когда ваше приложение находится в фоновом режиме (например, обмен промо-кода в приложении Play Store).
Локальный сервис Google Play кэширует покупки пользователя, поэтому функция работает даже в автономном режиме.
Я сделал это, и он отлично работает.
Однако, если я очищаю кэш приложения Google Play или жду 8-12 часов в автономном режиме, метод queryPurchases()
возвращает ошибку (Метод не может получить покупки, потому что лСрок действия кэша Google Play истек).Если я снова подключу устройство к сети, у меня все снова будет работать.
Теперь, ища решение в сети, кажется, не рекомендуется хранить локальные покупки inapp во внутренней памяти приложения, чтобы справиться с этой проблемой.
Мое приложение предназначено для использования в автономном режиме, но мне не нравится идея вернуть его в бесплатную версию, если queryPurchases()
не удастся (это будет очень раздражающим с точки зрения пользователя).Также мне не нравится идея «дать преимущество сомнения» и начинать в платной версии, если queryPurchases()
не срабатывает (пользователи могут начать использовать это поведение).
В настоящее время приложение просто показывает всплывающее окносообщение об ошибке с просьбой подключить устройство к интернету.Пользователи, которые сталкиваются с этой проблемой (их кэш Google Play становится недействительным, когда их устройство находится в автономном режиме), жалуются, что приложение не является действительно автономным приложением, потому что они видят всплывающее сообщение с просьбой подключиться к Интернету, и они правы.
Что мне делать?