android - 未调用 onPurchasesUpdated 等待购买成功
问题描述
我已更新我的应用程序以使用 android play 计费库的 v2.1.0(来自早期的 2.0.1 版本),并且在完成待定购买后我不再收到购买更新。
我构建了我的计费客户端,将侦听器设置为当前类,实现PurchasesUpdatedListener
:
billingClient = BillingClient.newBuilder( getActivity() )
.setListener( this )
.enablePendingPurchases()
.build();
然后我开始购买并使用“几分钟后批准的慢速测试卡”
BillingFlowParams.Builder purchaseParamsBuilder = BillingFlowParams.newBuilder()
.setSkuDetails( product );
billingClient.launchBillingFlow( getActivity(), purchaseParamsBuilder.build() );
在这表明购买待处理之后,我的听众被调用:
@Override
public void onPurchasesUpdated( BillingResult billingResult, List<Purchase> purchases )
{
int responseCode = billingResult.getResponseCode();
if (responseCode == BillingClient.BillingResponseCode.OK)
{
// I get to here with a Purchase.PurchaseState.PENDING
}
}
但是,购买完成时不会调用此侦听器。我让应用程序保持打开状态,并在通知栏中看到来自 Play 商店的通知说购买成功。
如果我在收到此通知后手动查询购买,我可以获得更新的购买,但这似乎不是处理购买的有效方法。
有谁知道我做错了什么或者这个过程改变了?
解决方案
这是 Play 商店应用程序 (v17.9.17) 中的一个问题。这里的代码是正确的,上面的 Play Billing 库的使用没有错误,即onPurchasesUpdated
应该在待处理的事务完成(成功或取消)时调用。
谷歌已经隔离了这个问题,它将在下一次更新中修复。
可以在此处找到错误报告的参考:
推荐阅读
- javascript - 如何使用 CSS/Javascript 制作锯齿状文本
- javascript - 反应中的Tensorflow automl模型
- google-cloud-platform - 将文件上传到 GCP 云存储的安全方式
- python - 将多行文本文件转换为 python 字符串
- node.js - TypeError:无法读取未定义 [Discord Bot] 的属性“执行”
- javascript - 如何按长度划分分组的数组对象?
- vb.net - 先生/女士,我真的需要你的帮助,我试图将平台更改为 x64,但它很有效
- pymongo - pymogno update_many 如果 X 不在 obj 中
- python-3.x - 根据另一个数据数组 (A) 中的条件替换数据数组 (B) 中的值
- excel - VBA:如何按列表过滤表