0

编辑:一个很大的变化,只反映我发现的与问题相关的内容。

我无法确定我的 APP 是否正常工作,因为 IAP 沙盒在大多数情况下都会为 consumePurchases 返回 BILLING_RESPONSE_RESULT_ERROR。

我正在旧设备摩托罗拉里程碑 1(android 2.3.3 cyanogen)中进行测试,并且正在将 Unity3d 与 IAP 集成。(Unity3d是opengl游戏引擎)

具有相同 IAP 的简单 android 原生应用程序始终有效,用于列表、购买和消费。

我读过 BILLING_RESPONSE_RESULT_ERROR 可能是超时。

当设备很冷时(一段时间不运行 3d 东西)似乎工作得更好。

会不会是超时造成的,因为慢速设备从 unity3d 和本机代码切换需要太多时间?

4

2 回答 2

0

BILLING_RESPONSE_RESULT_ERROR 实际上代表超时,但不适用于网络。但是切换上下文之间的 CPU 开销需要超过 20 秒。

这个问题似乎只在使用非常密集的应用程序的不良设备上很常见。

解决方案是优化您的代码以使用更少的资源并减少您饥饿的应用程序和 iap 服务之间的通信。

例如:收到购买响应后直接消费购买,不要创建新线程或调用应用程序中的任何事件。

于 2013-10-04T13:03:14.420 回答
0

我有同样的问题,但我用这段代码解决了这个问题:

runOnUiThread(new Runnable() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        getSkuDetails = new Thread(new Runnable() {
            @Override
            public void run() {
                getSkuDetailsRun();
            }
        });
        getSkuDetails.start();
    }
});

getSkuDetailsRun()方法中,我创建了请求……响应代码为“0”

我希望我能帮上忙!

于 2014-04-03T10:16:38.617 回答