android - 在 InApp 购买中出现此错误代码 3 的可能性有哪些?

标签 android in-app-purchase

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

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {              
        if (!result.isSuccess()) {
                // error here               
            return;
        }
    }
});

这是错误 计费 v3 支持的错误检查。 (回复:3:Billing Unavailable)

最佳答案

我们可以直接在 code of the setup 中看到Google提供的示例的IabHElper,错误的意思是:

"Billing service unavailable on device."

如您所见 here该错误意味着

Billing API version is not supported for the type requested

这是应用内结算引用(IAB 版本 3),因此该错误表示设备上未安装 IAB v3。

实际上这意味着用户有一个 Google 帐户,并且可能还有一个应用内结算服务,但它没有最新版本。这发生在旧设备中,用户从不更新任何东西。它曾经是您可以看到旧的电子市场应用而不是 Play 应用的设备。

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

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

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 Play 服务,或者您必须更新它”。并且没有其他可能会出现该错误。

但是,如果您想让用户更轻松,您可以说他们需要将 Google Play 应用更新到最新版本。这将使一切都像魅力一样发挥作用。

关于android - 在 InApp 购买中出现此错误代码 3 的可能性有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091353/

相关文章:

android - Visual Studio Cordova 工具,错误文件中的设备调试断点

android - 在 Android 中制作一个新的设置应用程序

android - 应用内结算到期

ios - 如何存储永久数据

android - 用户没有资格购买此 android inapp 购买

android - 从 Intent 打开第三方应用程序

java - 如何通过 WiFi 与 REV 机器人控制中心进行通信?

java - 不同的 setText(CharSequence,TextView.BufferType) 和 setText(CharSequence)

Android 应用内结算,多次购买同一商品

android - Flutter plugin : InAppPurchasePlugin. java使用未经检查或不安全的操作