Google InAppBilling onPurchaseStateChange 从未被调用

2024-01-20

回调方法onPurchaseStateChange从未被调用过。我做了自己的演示应用程序,并尝试使用谷歌提供的演示(地下城)。

我正在打电话requestPurchase(String productId, String payload)来自onClick method.


    @Override
    public void onClick(View view) {
        if(view == requestPurchaseButton) {
            mBillingService.requestPurchase("android.test.purchased", "10");
        }
    }

回调方法onRequestPurchaseResponse(Request, ResponseCode)叫做。 这responseCode这里给出了值RESULT_OK。这样请求就已经发送到服务器了。


       @Override
       public void onRequestPurchaseResponse(RequestPurchase request,
                ResponseCode responseCode) 
       {
              if(responseCode == ResponseCode.RESULT_OK) {
            Log.d("AJ", "onRequestPurchaseResponse.ResponeCode.RESULT_OK");
            textView.append(request.mProductId + "\n");
          } else if(responseCode == ResponseCode.RESULT_USER_CANCELED) {
                      //doesn't go here
          } else { 
                     //doesn't go here
          }
       }

该方法的 javadoc 指出

当我们收到来自 Market 的针对我们发出的 RequestPurchase 请求的响应代码时,将调用此函数。这不用于任何购买状态更改。所有购买状态更改均在 onPurchaseStateChange(PurchaseState, String, int, long) 中接收。这用于报告各种错误,或者用户退出并没有购买该商品。可能的响应代码有: RESULT_OK 表示订单已成功发送到服务器。当订单被收取或取消时, onPurchaseStateChange() 将在稍后调用(购买状态为 PURCHASED 或 CANCELED)。如果市场管理的商品的订单已发送到服务器,也可能会出现此响应代码。 RESULT_USER_CANCELED 表示用户没有购买该商品。 RESULT_SERVICE_UNAVAILABLE 表示我们无法连接到 Android Market 服务器(例如,如果数据连接断开)。 RESULT_BILLING_UNAVAILABLE 表示尚不支持应用内结算。 RESULT_ITEM_UNAVAILABLE 表示此应用程序出售的商品在服务器端目录中不存在(或未发布)。 RESULT_ERROR 用于任何其他错误(例如服务器错误)。

但回调方法


    @Override
        public void onPurchaseStateChange(PurchaseState purchaseState,
                String itemId, int quantity, long purchaseTime,
                String developerPayload) {
            Log.d("AJ", "onPurchaseStateChanged");

        }

从未被调用过。

我错过了什么吗?地下城(Google 提供的演示)和onPurchaseStateChange不被调用。

The 应用内计费测试 http://developer.android.com/guide/market/billing/billing_testing.html文档显示我们必须能够达到已购买状态。但当我尝试时,我只看到

android.test.purchased:发送购买请求。


我也遇到了同样的问题,但只是为自己解决了。我在代码中使用了我工作的公钥,但尝试在我的个人手机上运行该应用程序。由于我是用我的个人帐户在手机上登录的,我猜谷歌正确地认为我不是开发者。我认为他们会发回一条错误消息。当我将个人密钥插入代码后,它在我的手机上运行良好。因此密钥可能也不适合您。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google InAppBilling onPurchaseStateChange 从未被调用 的相关文章

  • 如何从android ble扫描结果中获取CRC?

    我每次都从 ble 设备收到 62 字节的扫描结果 使用下面的回调代码获取扫描结果 我可以获取 RSSI 但无法获取 CRC 或者 获取一帧的CRC的逻辑是什么 来自 ble 设备的数据格式 如数据包标头 广告数据 CRC RSSI 如何从
  • 如何访问 Android 心率传感器原始数据? (反射光,不是心跳)

    心率传感器上的 android sdk 仅返回计算出的 bpm 我对此不感兴趣 我需要访问 Android 心率传感器原始数据 例如就反射值的强度而言将会很大 因为心率传感器基本上使用 LED 并测量随时间变化的反射率 如果可能 访问由任何
  • 通过代码在创建时突出显示 ListView 项目

    我想在创建 listView 时突出显示 ListView 的第一行 0 我尝试了不同的方法 就像您在注释代码中看到的那样 但没有任何效果 这很奇怪 因为 OnItemClickListener 中的突出显示工作正常 它通过 xml 选择器
  • 升级到最新支持库后Android JACK编译器错误

    Android Studio 2 2 3 Windows 10 64位 构建工具版本 25 Android Gradle插件版本2 2 3 升级到最新的支持库 从 23 4 0 到 25 1 0 并更改编译版本 从 23 到 25 后 我收
  • Android中将JSON数据存储到本地数据库

    好的 我创建了一个应用程序 它使用 JSON 从我的服务器检索数据 现在我想将检索到的数据存储在手机的本地存储 数据库中 我该怎么做 我是android编程新手 这是我从服务器收到的 JSON messages id 44 issender
  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 我无法再在后台应用程序中接收任何 FCM 消息

    当应用程序处于后台时 我无法再在应用程序中接收任何数据消息 请注意 直到最近它在我的应用程序中都运行良好 也许在我的开发环境最近更新后它停止工作了 我不能说 所以我尝试用快速入门 android 项目 https github com fi
  • 蓝牙 BLE Android 以最大吞吐量写入外设

    我们公司开发了一个具有蓝牙 BLE 的硬件单元 并且我们在 Nexus 7 2013 中有一个服务应用程序 我们希望使用它向该单元发送固件文件 文件最大可达 500kb BT芯片是德州仪器CC2540 我浏览了大量的页面 并扫描了 Stac
  • 如何在Android中的DataBinding的ViewModel类中获取R.string

    我目前正在使用databinding对于我的 Android 应用程序项目 我想设置error留言在我的CustomTextView from R string txtOldPassWordError并从另一个名为的类中进行设置ViewMo
  • 更改语言 Flutter 的按钮

    我正在 Flutter 中构建一个应用程序 到目前为止 我正在使用 JSON 国际化 其中应用程序的语言基于用户手机中默认的语言 它工作得很好 但我想给用户有机会在不更改手机系统语言设置的情况下更改语言 只需单击按钮 然后应用程序即可更改语
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • 如何清除Android剪贴板?

    我发现的方法都不起作用 这是我尝试过的 1 使用clearPrimaryClip 的方法ClipboardManager class ClipboardManager clipboard ClipboardManager getSystem
  • Android 和 Google 地图内部片段以及其他控件和 viewpager

    我是android编程新手 我有一个带有 3 个页面 片段 的小应用程序 使用 pageradapter 和 viewpager 在它们之间滑动 其中一个页面包含复选框 和其他控件 和地图 我的问题是程序在启动时崩溃 Fragment co
  • 在 Android 中加密/解密字符串的简单方法

    我的问题是如何加密String String AndroidId Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceSta
  • Jetpack Compose:制作全屏(绝对定位)组件

    我怎样才能在全屏渲染树的深处制作一个可组合的 类似于Dialog可组合作品 例如 当用户单击图像时 它会显示该图像的全屏预览 而无需更改当前路线 我可以用 CSS 来做到这一点position absolute or position fi
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 调试android数据绑定?

    谁能告诉我如何调试或找到数据绑定生成的代码 从this https www youtube com watch v NBbeQMOcnZ0链接我发现它生成了所需的代码 我猜您正在寻找自动生成的绑定 java 文件 我也在寻找他们 最后我在这
  • Android 从通知刷新 Activity

    我有一个程序 我在其中调用通知 如果您将其下拉 该通知将启动一个新活动 mNotificationManager NotificationManager getSystemService ns int icon R drawable sta
  • Android AppWidgetManager 方法 updateAppWidget 无法设置意图、加载数据。而且它是随机发生的

    我的小部件由 2 个按钮和一个显示数据的列表视图组成 大多数时候 当调用小部件提供程序的 onUpdate 方法时 一切都会正常加载 每个人都很高兴 但是我注意到有时在调用更新方法后 小部件完全无法加载其数据 列表视图为空 所有按钮均无响应
  • 动态更改按钮上的图像视图

    在我的应用程序中 我有按钮和ImageView 当我按下按钮时我想改变ImageView 我的可绘制文件夹中有 5 张图像 按下按钮时 ImageView 根据按钮单击一张一张地更改图像 我想要它的解决方案 感谢任何可以提供帮助的人 维护一

随机推荐

  • SQL Server SMO - 备份 - 如何确定失败/成功?

    如果使用 SMO 执行备份 成功完成后 我测试 SqlError 是否为 null 认为备份已完成且没有错误 但是 正如您所看到的 它实际上返回了 0 类编号 3014 的错误 这意味着成功 所以问题是 问 如何确定备份是否成功完成 以及如
  • 与 jasperReports 完全混淆

    在开始工作前两天 我才刚刚接触 jasper 我下载了 jasperReports 和 iReports 并在我的 salesforce 帐户中安装了 iReports 并安装了 jasper4salesforce 但没有找到任何 jasp
  • jQuery - 内联调用函数

    我正在尝试将一个变量传递给内联 jQuery 函数 即 使用onMouseOver function 在实际链接内 这是图像映射中的区域标记 仅当我将其放在之前时才会调用该函数 document ready function 行 但这样做会
  • 大文件上传(WebException:连接意外关闭)

    UPDATED 看帖子 3 https stackoverflow com questions 1060966 big files uploading webexception the connection was closed unexp
  • android manifestPlaceholders - 如何使用布尔值

    我创建的清单占位符如下所示 manifestPlaceholders appDrawerName Staging canExport true 我正在尝试使用它来设置活动的以下导出属性
  • Forge Viewer 在多模型上下文中选择

    我们的扩展目前利用viewer select 和模型中的dbId 列表 我们的客户希望在同一查看器中看到辅助模型 我们让他们能够在加载第一个模型后加载参考模型 然而 我们遇到了多个模型的问题 观众从其中一个模型中进行选择以外当我们调用vie
  • 有没有办法在Delphi中仅跟踪项目源?

    我正在使用 Delphi 2010 我想知道是否有一种方法可以跟踪项目中的代码 而无需跟踪对包含的 VCL 的调用 For example you put in a breakpoint and then use Shift F7 to t
  • CanCan - 访问被拒绝 - 如何让 CanCan 在 LOG 中指定 为什么?

    我正在努力实现 CanCan 由于某种原因 当我尝试获取有关模型权限的具体信息时 CanCan 不断给出 访问被拒绝 的信息 我不明白为什么 有没有办法让 CanCan 具体说明 也许是在日志中或在开发过程中了解为什么访问被拒绝 比如 没有
  • 非静态模板成员:可能吗?

    是否可以在类中创建非静态模板字段 如果没有 如何解决 此类字段应根据需要在编译时创建 Example 我有很多B 类 如B1 B2 B3 在实际情况中 它们有更有意义的名称 我想创建一个类D具有非静态模板函数add
  • R - 绘制六边形镶嵌

    我想生成一些正方形图 其中有六边形数组 如图所示here http gwydir demon co uk jo tess bighex htm 我想绘制规则 几何规则 和异常六边形镶嵌 所以我认为 sp 包中的工具不起作用 下面是我使用 o
  • 如何将 LinqPAD 中的数据导出为 JSON?

    我想创建一个 JSON 文件作为简单 Web 原型设计练习的一部分 LinqPAD 非常适合以我需要的形式从数据库访问数据 但是我无法轻松地将其作为 JSON 获取 我并不真正关心模式是什么 因为我可以调整我的 JavaScript 以处理
  • 如何在 C# 中检查 Microsoft Edge Chromium 是否安装

    C 中检测 Microsoft Edge Chromium 是否已安装并且同时不检测 Edge 仍在系统中而 Chromium 应覆盖 旧 Edge 的最佳方法是什么 最好使用 Windows 注册表 For 检测旧边缘 https sta
  • 使用 jest 和 vue-test-utils 进行 Vue 测试无法解析通过 app.component() 引入的组件

    我目前正在尝试向我的 Vue 3 Vite 应用程序引入测试 我为此使用 jest 和 vue test utils 这工作正常 除了当我尝试安装包含我的基本组件的组件时 我在 app mount app 之前用 app component
  • Android:从应用程序执行二进制文件

    正如标题所示 我想从我的 android 应用程序执行一个二进制文件 我使用 NDK 创建了一个二进制文件 并可以使用 adb shell 运行它 然后我尝试使用 Runtime exec 运行它 但权限被拒绝 我尝试了不同的目录并更改文件
  • 更改 Android Studio 默认模板中导航抽屉图标的颜色

    Android Studio 中新的默认导航抽屉活动模板 在菜单文件中定义其标题和图标activity main drawer像这样
  • RadioGroup 按钮在 listView 滚动后失去其状态

    I struggle with a common problem however I can t see the solution to it What I m trying to achieve is to display the lis
  • 是否dispatch_async(dispatch_get_main_queue(), ^{...});等到完成?

    我的应用程序中有一个场景 我想在一个方法中执行一些耗时的任务 其中包括一些数据处理和 UI 更新 我的方法看起来像这样 void doCalculationsAndUpdateUIs DATA PROCESSING 1 UI UPDATE
  • 为什么我的文件不存在,即使我给了它一个存在的路径?

    我的 if 条件为imgFile exist 给我错误 但当 Log d 打印其结果时 我可以看到该文件存在于路径中 我只是尝试从路径加载图像以将其作为活动微型图像的背景 我的清单中也有读 写权限android permission WRI
  • 如何使用 json.net 进行 json 的递归下降?

    我正在尝试使用 json net 解析 json 文件 该文件看起来像这样 X Title foo xxxx xxxx Y ZZ Title bar 我试图递归这个结构来处理具有 Title 属性的所有对象 但我很困惑JToken JPro
  • Google InAppBilling onPurchaseStateChange 从未被调用

    回调方法onPurchaseStateChange从未被调用过 我做了自己的演示应用程序 并尝试使用谷歌提供的演示 地下城 我正在打电话requestPurchase String productId String payload 来自on