Android 应用内购买问题

标签 android in-app-purchase google-play

我们在 Android 电子市场上提交了我们的第一个应用程序后,我遇到了一个奇怪的问题。该应用具有应用内购买功能,该功能在发布前已经过全面测试(至少我是这么认为的)。

我知道类似的问题可能已经存在,但我还没有找到,而且很难用几句话来描述我的问题。

问题出现在用户:

a) 从 Android Market 下载我们的应用程序
b) 下载后通过 Android Market 中的 OPEN 链接打开应用
c) 开始购买,将用户带回 Android 电子市场。
d) 取消或完成购买

然后:

用户没有返回到我们的应用程序,而是返回到 Android 电子市场(它显示了我们的应用程序的描述以及打开应用程序的按钮等)。在 LogCat 中,一个响应代码从 Android Market 发送到 Purchase Observer,但是我们的应用程序(现在在后台)没有收到该代码并因此停止,永远等待来自 Android Market 的响应。所以这实际上是两个问题,因为用户在购买后返回到 Android Market 屏幕并不是故意的 - 我们的应用程序在历史上应该在 Market 之前。

如果用户在 Android 电子市场之外(例如主屏幕)打开我们的应用程序,一切正常。观察者收到取消或完整的响应代码。

我们使用 Google 自己的应用内结算示例作为我们的基础。

我希望这是可以理解的。

提前致谢

最佳答案

好吧,我终于自己找到了答案。

我将尝试在不使用任何代码的情况下解释解决方案:)

PurchaseObserver 实例仅在我的 Activity 处于 Activity 状态时可用 - 但在上述示例中它并未处于 Activity 状态。我错误地认为 PurchaseObserver 是订单应该保存在数据库中的地方 - 结果发现在购买时您不能确定 PurchaseObserver 是否存在。相反,我现在只使用 Observer 来更改 UI,然后通过 ResponseHandler 处理订单信息和数据库,当在 Android Market 中进行购买时,它总是被调用。

我仍然认为用户在购买时返回到 Android Market 而不是我们的应用程序很奇怪(仅当用户通过 Android Market 启动应用程序时),但我似乎找不到解决方案或解释.

顺便说一下,如果没有 Android Market 上的应用程序,这是不可能测试或重现问题的 - 所以我希望这个解释可以帮助你们不要犯我犯过的同样的错误;)

关于Android 应用内购买问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8728633/

相关文章:

android - 我是否需要为 ART 和 Dalvik 编写不同的代码?

android - InAppBilling 不可靠

android - 如何从桌面远程访问 Android 设备

java - 在 Playstore 上为您的 Android 应用程序提供升级时,是否可以对本地保存的数据运行代码/任务?

android - 从Google Play下载时找不到应用程序类异常

android - 有没有办法实时知道应用程序何时使用权限?

android - Acra 在发行版中不起作用

android - 应用程序更新后重复的 Intent 。警报是否存在?

android - 在Android中实现应用内购买退款

ios - 在 App Purchase 中不恢复与沙箱用户的交易