首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在InApp购买中获得这个错误代码3的可能性是什么?

在InApp购买中获得这个错误代码3的可能性是什么?
EN

Stack Overflow用户
提问于 2014-01-13 12:29:34
回答 8查看 39.6K关注 0票数 29

在我的应用程序中,我使用InApp V3代码进行应用程序内的购买,当Google帐户在设备中不可用时,我会得到这个错误BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLEerror value :3。我想知道是否还有其他可能得到这个错误,因为当我得到这个错误时,我需要用一些数据向用户显示一个弹出窗口。如果这是导致由于谷歌帐户无法在设备上,我将显示与相关的文字对话框。这是我正在使用的代码

代码语言:javascript
运行
复制
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {              
        if (!result.isSuccess()) {
                // error here               
            return;
        }
    }
});

这是错误Error checking for billing v3 support. (response: 3:Billing Unavailable)

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-01-22 05:37:45

正如我们在Google提供的示例的设置的代码中直接看到的那样,错误意味着:

“设备上无法使用计费服务。”

正如您可以阅读这里那样,这个错误意味着

代码语言:javascript
运行
复制
Billing API version is not supported for the type requested

这是应用内计费参考(IAB版本3),因此错误意味着IAB v3没有安装在设备上。

实际上,这意味着用户有一个Google帐户,也可能是应用内计费服务,但它没有最后一个版本。这种情况发生在旧设备上,用户从来不更新任何内容。它过去是一种设备,你可以在那里看到旧的市场应用程序,而不是播放应用。

因此,您必须向用户显示的错误,以及您必须执行的测试不是设备是否有Google帐户,而是设备是否安装了Google Play服务并进行了适当的更新。

如果您在所有库SDK和google提供的帮助类中查找代码,我们可以在您调用的函数中找到它的唯一位置:startSetupIabHelper类。

代码语言:javascript
运行
复制
Intent serviceIntent = new Intent(
                "com.android.vending.billing.InAppBillingService.BIND");
        if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
                .isEmpty()) {
            // service available to handle that Intent
            mContext.bindService(serviceIntent, mServiceConn,
                    Context.BIND_AUTO_CREATE);
        } else {
            // no service available to handle that Intent
            mServiceConn=null;
            if (listener != null) {
                listener.onIabSetupFinished(new IabResult(
                        BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
                        "Billing service unavailable on device."));
            }
        }

这意味着应用程序无法连接到设备()中的服务,因为包管理器甚至不知道它是。这是唯一可以触发错误的选项。它不能连接到服务意味着什么?它的意思是其中之一:

  • 设备没有安装服务。
  • 它有一个旧版本,因为我们知道最新版本的play商店使用IAB v3。

因此,您的错误只能表示其中的一个,对于您来说,这意味着您必须向用户显示一条信息,比如“您没有安装Google服务,或者您必须更新它”。没有其他的可能会导致这个错误。

但是,如果你想让用户更容易,你可以说他们需要将Google应用程序升级到最后一个版本的。这会让一切都像魅力一样运转。

票数 39
EN

Stack Overflow用户

发布于 2014-07-30 10:22:34

在用户从设备中删除他们的google帐户后,也会收到此错误。

票数 18
EN

Stack Overflow用户

发布于 2018-04-07 06:58:42

用任何帐户登录游戏商店。

登录后,计费工作,甚至在Android模拟器上。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21091353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档