Проблема покупки Android в приложении - PullRequest
3 голосов
/ 04 января 2012

У меня странная проблема после того, как мы представили наше первое приложение на Android Market.В приложении есть функция покупки в приложении, которая была полностью протестирована перед выпуском (или, по крайней мере, я так думал).

Я знаю, что подобные вопросы могут уже существовать, но я не нашел ихи довольно сложно описать мою проблему всего несколькими словами.

Проблема возникает, когда пользователь:

a) загружает наше приложение из Android Marketб) открывает приложение после загрузки по ссылке ОТКРЫТЬ в Android Marketв) начинает покупку, которая возвращает пользователя в Android Market.d) либо отменяет, либо завершает покупку

Затем:

Вместо того, чтобы вернуться в наше приложение, пользователь возвращается в Android Market (где отображается описание нашего приложения скнопка, чтобы открыть приложение и т. д.).В LogCat код ответа отправляется из Android Market в обозреватель закупок, но наше приложение (теперь находящееся в фоновом режиме) не получает код и поэтому останавливается, ожидая ответа от Android Market.Так что на самом деле это две проблемы, потому что пользователь не намеренно возвращается к экрану Android Market после покупки - наше приложение должно быть раньше, чем Market в истории.

Все работает правильно, если пользователь открывает наше приложение вне AndroidРынок (например, домашний экран).Наблюдатель получает либо отмененный, либо полный код ответа.

Мы использовали собственный пример Google In-App Billing в качестве нашей основы.

Надеюсь, это несколько понятно.* Заранее спасибо

1 Ответ

5 голосов
/ 07 января 2012

Хорошо, я наконец-то нашел ответ сам.

Я попытаюсь объяснить решение без использования какого-либо кода:)

Экземпляр PurchaseObserver доступен, только когда моя активность активна- но он не активен, в примере, описанном выше.Я допустил ошибку, полагая, что именно в PurchaseObserver заказ должен быть сохранен в базе данных - только для того, чтобы выяснить, что вы не можете быть уверены, что BuyObserver существует при совершении покупки.Вместо этого я теперь использую Observer только для изменения пользовательского интерфейса, а затем обрабатываю информацию о заказе и базу данных через ResponseHandler, который всегда вызывается при совершении покупки в Android Market.

Я все еще думаю, что это страннопользователь возвращается в Android Market, а не в наше приложение, когда совершается покупка (только когда пользователь запускает приложение через Android Market), но я не могу найти решение или объяснение этому.

ЭтоМежду прочим, невозможно протестировать или воспроизвести проблему, не имея приложения на Android Market - поэтому я надеюсь, что это объяснение поможет вам, ребята, не совершить ту же ошибку, что и я;)

...