当前位置: 首页 > news >正文

google 内购

以下是用 **Kotlin** 接入 Google Play 内购(Google Play Billing)的完整指南,基于官方 **Billing Library 7.x**(当前稳定版)。包含初始化、查询商品、发起购买、处理购买结果、消耗品确认以及服务端验证建议。

1. 添加依赖

在 `app/build.gradle.kts` 中添加:

```kotlin
dependencies {
    implementation("com.android.billingclient:billing:7.1.1")
}
```

同步项目。

2. 配置权限和声明

在 `AndroidManifest.xml` 中添加(内购不需要特殊权限,但需要声明查询商品):

```xml
<uses-permission android:name="com.android.vending.BILLING" />
```

> 注意:`BILLING` 权限在 Billing Library 5.0+ 中不再强制,但保留兼容性无妨。

3. 初始化 BillingClient

```kotlin
import com.android.billingclient.api.*

class MainActivity : AppCompatActivity() {

    private lateinit var billingClient: BillingClient
    private val purchasesUpdatedListener = PurchasesUpdatedListener { billingResult, purchases ->
        // 购买回调处理
        handlePurchaseResult(billingResult, purchases)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setupBillingClient()
    }

    private fun setupBillingClient() {
        billingClient = BillingClient.newBuilder(this)
            .setListener(purchasesUpdatedListener)
            .enablePendingPurchases()  // 必须启用,处理延迟购买
            .build()

        startBillingConnection()
    }

    private fun startBillingConnection() {
        billingClient.startConnection(object : BillingClientStateListener {
            override fun onBillingSetupFinished(billingResult: BillingResult) {
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
                    // 连接成功,可以查询商品和发起购买
                    queryAvailableProducts()
                } else {
&nb

http://www.jsqmd.com/news/648964/

相关文章:

  • Kindle Voyage刷安卓系统实战:从越狱到微信读书墨水屏版完美运行
  • 2026年评价高的日化铝瓶/喷雾铝瓶口碑好的厂家推荐 - 品牌宣传支持者
  • 3分钟掌握DownKyi:B站视频下载与管理的完整方案
  • 软件工艺优化化的参数调整与效率提升
  • 如何使用SQL视图快速生成测试数据_模拟复杂场景
  • LFM2.5-1.2B-Thinking-GGUF模型效果深度评测:代码生成与逻辑推理能力展示
  • 2026年质量好的试剂级乙酸乙酯/湖北医药中间体醋酸乙酯/清洗剂用乙酸乙酯/食品级醋酸乙酯精选厂家 - 行业平台推荐
  • 2026年评价高的江苏夹层钢化玻璃/中空钢化玻璃/防弹钢化玻璃源头工厂推荐 - 行业平台推荐
  • Tao-8k智能体(Agent)框架开发实战:自主任务规划与执行
  • 2026年质量好的玉溪厕所隔断/抗倍特板厕所隔断源头厂家推荐 - 行业平台推荐
  • SAP系统运维必备:如何利用Application Log高效排查问题(含SLG1高级查询技巧)
  • 提升开发效率:JetBrains IDE评估重置工具的技术架构与实施指南
  • InSAR数据获取实战:从Sentinel-1、精密轨道到高精度DEM的一站式指南
  • 如何使用宝塔面板配置高性能网站防火墙_启用WAF防御规则
  • AI绘画进阶技巧:从出图到商用,避开版权坑与同质化的核心方法
  • 2026年比较好的上海宠物除臭剂/宠物洁齿手指湿巾/宠物猫咪禁区喷雾/宠物滴耳液口碑好的厂家推荐 - 品牌宣传支持者
  • 从‘看哪里’到‘不看哪里’:聊聊CV中的反向注意力(Reverse Attention)与人类的视觉注意机制
  • SiameseAOE模型数据库课程设计项目:构建舆情分析系统
  • 测试左移与右移平衡:工作流优化
  • 2026年比较好的西安医院除甲醛/西安平层除甲醛/西安住宅除甲醛/西安别墅除甲醛可靠供应商推荐 - 行业平台推荐
  • Chord - Ink Shadow 一键部署教程:Python环境快速配置与模型调用
  • Windows右键菜单管理深度解析:从杂乱到高效的完整解决方案
  • 2026年质量好的山东污水处理聚合氯化铝/山东山东聚合氯化铝/污水处理专用聚合氯化铝/白色聚合氯化铝推荐公司 - 行业平台推荐
  • CubeMX 6.4+ 版本下,用STM32F4+LAN8720A搞定FreeRTOS+LWIP的完整流程(附PD3复位关键点)
  • RK3588 AI开发选型指南:RKNN-Toolkit-Lite2 vs. RKNPU2 SDK,C接口和Python接口到底怎么选?
  • 别再纠结YOLOv8模型了!一张图看懂n/s/m/l/x怎么选(附数据集大小对照表)
  • 2026年口碑好的全国MABR污水处理设备选型服务商/MABR污水处理/MABR污水处理解决方案/MABR污水处理解决方案提供商服务型公司推荐 - 品牌宣传支持者
  • 大模型安全与对齐技术:企业落地必看的合规与风控指南
  • 2026年口碑好的液体聚合硫酸铁/工业废水处理剂聚合硫酸铁/山东山东聚合硫酸铁/山东液体聚合硫酸铁公司推荐 - 品牌宣传支持者
  • 优化EFI引导配置:实现WIN10与UBUNTU20.04双系统无缝切换