SuperAPI AI 工具集

integrating-pbl

通用与其它

查看项目

更新于 10-16 07:58

技能介绍

用途:在 Android 应用客户端接入 Google Play Billing Library(PBL),包括添加依赖、构建 BillingClient、管理连接生命周期和查询商品。

主要能力:按阶段推进集成——先确认意图(首次接入、升级 PBL、修复连接问题、新增商品查询)与发现(检查 Gradle 依赖、现有 BillingClient 用法、版本、Context、enablePendingPurchases、自动重连、实例化位置、KTX 支持),再规划连接策略(Application 级单例或 ViewModel/功能级)与回调/KTX 协程风格,然后执行。

使用方式:依赖示例 implementation("com.android.billingclient:billing-ktx:9.0.0");用 applicationContext 构建 BillingClient,需调用 setListener、enablePendingPurchases(PendingPurchasesParams.newBuilder().build())、enableAutoServiceReconnection()。通过 startConnection 连接,onBillingSetupFinished 返回 OK 前不要调用计费方法。查询商品用 queryProductDetailsAsync/queryProductDetails,单次最多 20 个,可混用 INAPP 与 SUBS,不要跨会话缓存 ProductDetails。PBL 8/9 的 UnfetchedProduct 需按响应码处理:SERVICE_UNAVAILABLE、SERVICE_TIMEOUT 退避重试,DEVELOPER_ERROR 不重试。

限制与验证:每进程只应有一个 BillingClient;缺失 setListener 抛 IllegalArgumentException,缺失 enablePendingPurchases 抛 IllegalStateException。PurchasesUpdatedListener 在主线程回调且可能后台触发,不要直接更新 UI,也不要在非 OK 时强解 purchases。启用自动重连后 PBL 自行退避重试,仍需重试因 SERVICE_DISCONNECTED 失败的在途操作;禁用则自行实现退避(约 1 秒起,上限约 15 秒)。销毁所属作用域时调用 endConnection()。完成后按依赖、单实例、购买回调、连接就绪、商品查询、Unfetched 处理、断连恢复、endConnection 等清单验证;任一失败应回到规划阶段修改,而非掩盖。版本特定细节参考 Google Play Billing Library 发布说明与迁移指南。