【问题标题】:Not being able to establish connection for In app billing in android无法在 android 中建立应用内计费连接
【发布时间】:2013-02-18 10:31:31
【问题描述】:

我正在尝试将 In app billing v3 集成到我的应用中。我调用以下函数进行初始化。

public static void SetupInappBilling()
{
    mHelper = new IabHelper(context, base64EncodedPublicKey);
    mHelper.enableDebugLogging(true);
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() 
    {
        public void onIabSetupFinished(IabResult result) 
        {
            if (result.isSuccess())
            {
                Log.e("tag", "connected");
                ConnectionEstablished = true;

            } 
            else
            {
                    Log.e("tag", "not connected");

                    ConnectionEstablished = false;
                }
            }
        });
    }

但我在 OnIabSetupFinishedListener 中没有收到回电 谁能告诉我如何解决这个问题

【问题讨论】:

  • 您如何断定 Google Analytics 的警告与您未收到应用内结算事件有关?
  • 因为在我开始在应用计费中实施之前我没有得到它们,而且我没有在我的应用程序的任何地方明确调用谷歌分析
  • 据我所知/观察到,Google Analytics 并未参与 IAB。无论哪种方式,请独立查看。 -- 但是你确实调用了SetupInappBilling()?你在什么线程和上下文中这样做?
  • 我从 OnCreate() 函数调用 SetupInappBilling()
  • 设备有连接吗?并且没有真正与 IAB 相关的消息? IAB 在某些条件下无法工作。你检查startSetup()的返回值吗?我敢打赌,您甚至无法连接到该服务。

标签: android google-analytics in-app-billing


【解决方案1】:

如前所述,示例 IabHelper 实现忽略了 bindService() 调用的返回值。

bindService() 如果无法绑定到服务,则返回false。在这种情况下,不会调用任何回调。在这方面,bindService() 的返回值对于程序逻辑来说是必不可少的,千万不能忽视;示例应用程序在这里并不完美。

如果我没记错的话,绑定到 IAB V3 的情况是:

  • 只有 IAB V2 可用(它使用不同的类名)
  • Google Play 未完全设置

【讨论】:

  • 问题是我的 google play 版本太旧了。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多