准备好你的应用程序

准备好你的内购应用

在开始使用 In-app Billing 服务之前,你需要先把包含 In-app Billing Version 3 API 的库添加到你的Android工程中。你还需要设置你的应用和Google Play通信需要的权限。另外,你还需要在你的应用和Google Play之间建立一个稳定连接。最后还要确认Google Play支持你应用程序使用的In-app Billing API版本

下载示例程序



在这个训练课程,你将用到一个叫做 TrivialDrive 的示例程序对于In-app Billing Version 3的参考实现。 这个例子里有些便捷类可以快捷设置In-app Billing服务,编码解码数据类型以及在你程序的主线程处理In-app Billing请求。注1

去下载例子程序:

  1. 打开 Android SDK Manager.
  2. 在SDK Manager中展开 Extras 部分.
  3. 选择 Google Play Billing Library.
  4. 点击 Install packages 完成下载。

这个例子文件将会安装到 <sdk>/extras/google/play_billing/. (译者注:就是在你电脑上SDK目录下面)

添加应用到控制台



在 Google Play 开发者控制台,你可以发布你的添加了 In-app Billing 的应用,还可以管理来自你的应用中可以销售的各种数字商品。当你在开发者控制台创建一个新应用后,控制台会为你的应用自动生成一个公钥(public license key)。你将需要使用这个公钥在你的应用和Google Play服务器之间建立一个可信赖的连接。这个公钥在应用创建的时候生成,在以后更新你程序的APK文件时不必再次生成。

把你的应用添加到开发者控制台:

  1. 打开 Google Play Developer Console 并登陆,如果你先前没有注册的话需要先注册一个新的开发者账号。为了销售内购商品,你还需要一个 Google Wallet 商业账号。
  2. 如果你还没有登陆到最新版本的话,就点击 Try the new design 进入开发者控制台的预览版。
  3. 在 All Applications 标签处添加一个新应用。
    1. 点击 Add new application.
    2. 给你的新 In-app Billing 应用输入一个名字.
    3. 点击 Prepare Store Listing.
  4. 在 Services & APIs 标签页下找到Google Play为你应用生成的公钥并记下,一会儿在你的程序里会用到这个 Base64 字符串。

你的应用现在应该出现在开发者控制台的应用列表中。

添加 In-app Billing 库文件



为了使用 In-app Billing Version 3 的功能,你必须把 IInAppBillingService.aidl 文件添加到你的工程中。 这个 Android Interface Definition Language (AIDL) 文件定义了Google Play 服务可用的接口。

你可以在提供的例子程序里找到这个IInAppBillingService.aidl文件。根据你是创建一个新的应用还是修改现有的应用,跟随下面的指导把In-app Billing库添加到你的工程中。

新工程

添加 In-app Billing Version 3 library 到你的新 In-app Billing 工程:

  1. 把 TrivialDrive 例子程序文件复制到你的工程。
  2. 把复制的文件包名修改成你工程使用的包名。在 Eclipse,你可以使用一个快捷方式: 右键选中包名,然后选择 Refactor > Rename。
  3. 打开 AndroidManifest.xml 文件,把包名属性值改成你工程的包名。
  4. 看情况修复 import 语句,让你的工程可以成功编译。在 Eclipse,你可以使用这个快捷方式: 在出错的文件中按 Ctrl+Shift+O。 (译者注:导包的快捷键,地球人都知道~~)
  5. 修改例子代码来创建你自己的应用。记得把开发者控制台为你程序生成 Base64 公钥拷贝到你的 MainActivity.java.

现有工程

添加 In-app Billing Version 3 library 到你已有的 In-app Billing 工程:

  1. 把 IInAppBillingService.aidl文件复制到你的 Android 工程。

    • 如果你正在使用eclipse: 把 IInAppBillingService.aidl 文件引入到工程的 /src 目录下。
    • 如果你正在开发使用的是非eclipse环境: 创建下面的目录 /src/com/android/vending/billing 并把 IInAppBillingService.aidl 文件复制到这个目录下。
  2. 生成你的程序。在你工程的 /gen目录下应该可以看到一个生成的文件IInAppBillingService.java
  3. 把 TrivialDrive 例子中 /util 目录下的辅助类添加到你的工程。记得改变这些文件中声明的包名,这样你的工程才可以成功编译。

现在你的工程应该已经包含了 In-app Billing Version 3 library.

设置 Billing 许可



你的程序应该有个可以向 Google Play 的购买服务发送请求以及收到回应的许可。为了给你的应用添加必要的许可,把下面这行许可内容添加到你的manifest文件AndroidManifest.xml: 

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

初始化一个 Google Play 连接



为了向In-app Billing 发送请求和收到回应,你必须把你的Activity绑定到 Google Play 的In-app Billing服务。在例子中已经提供了处理绑定服务的便捷类,所以你不必直接管理网络连接。

为了和Google Play设置同步通信,在你程序Activity的 onCreate 方法中创建一个 IabHelper 实例。在 IabHelper 构造方法中传Activity的 Context 还有先前在开发者控制台生成的公钥字符串。

安全建议: 强烈建议你不要把公钥原样的编写到代码里。可替代的,在把公钥传给构造方法前,你可以动态的用子字符串构造完整的公钥,也可以从一个加密的存储中获取它。注3 这样做可以有效地防止有些居心不良的第三方修改你APK文件中的公钥。

IabHelper mHelper;

@Override
public void onCreate(Bundle savedInstanceState) {
   // ...
   String base64EncodedPublicKey;

   // compute your public key and store it in base64EncodedPublicKey
   mHelper = new IabHelper(this, base64EncodedPublicKey);
}

接下来,调用你创建的 IabHelper实例中的startSetup方法来执行服务绑定。在方法中传一个 OnIabSetupFinishedListener,这个listener会在  IabHelper 完成异步设置后调用一次。在设置过程中 IabHelper 也会检测Google Play是否支持In-app Version 3 API,如果这个版本的API不被支持,或者在建立服务绑定时出现错误,这个listener就会被通知并且传给一个带有错误消息的IabResult对象。

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
   public void onIabSetupFinished(IabResult result) {
      if (!result.isSuccess()) {
         // Oh noes, there was a problem.
         Log.d(TAG, "Problem setting up In-app Billing: " + result);
      }
         // Hooray, IAB is fully set up!
   }
});

如果这个设置成功完成,你现在就可以使用这个 mHelper 引用来和Google Play服务通信了。当你的应用启动时,最好去查询下Google Play,看看用户都拥有哪些内购物品。详细内容在后来的 Query Purchased Items 部分。

重要: 记得在你用完activity后解除和In-app Billing服务之间的绑定。如果你不解除绑定,这个开放的服务连接可能影响你设备的性能。为了解除绑定并释放你的系统资源,可以在你的 Activity 销毁的时候调用 IabHelper的 dispose 方法。

@Override
public void onDestroy() {
   super.onDestroy();
   if (mHelper != null) mHelper.dispose();
   mHelper = null;
}
注1:原文 In this training class, you will use a reference implementation for the In-app Billing Version 3 API called the TrivialDrive sample application. The sample includes convenience classes to quickly set up the In-app Billing service, marshal and unmarshal data types, and handle In-app Billing requests from the main thread of your application.

注2:原文 The convenience classes provided in the sample handles the binding to the In-app Billing service, so you don’t have to manage the network connection directly.

注3:原文 Instead, you can construct the whole public license key string at runtime from substrings, or retrieve it from an encrypted store, before passing it to the constructor.
时间: 2024-10-22 01:55:02

准备好你的应用程序的相关文章

android应用程序签名(转)

概述 Android系统要求,所有的程序经过数字签名后才能安装.Android系统使用这个证书来识别应用程序的作者,并且建立程序间的信任关系.证书不是用于用户控制哪些程序可以安装.证书不需要授权中心来签名:Android应用程序上使用自己签名的证书是完全允许且普遍的. 理解Android应用程序签名有以下几个重要点: 所有的应用程序都必须签名.系统不会安装任何一个不签名的程序. 你可以使用自己的证书来签名.不需要任何授权中心. 当你要为最终用户发布你的应用程序的时候,你必须签入一个合适的密钥.你

如何使用SDK在Ubuntu设备(包括仿真器和桌面)上运用应用程序

简介 有三种运行通过SDK创建的应用程序的方式:在桌面上,在联网的Ubuntu设备上,以及在仿真器中.这些方式为互补性方式,因为各有优缺点.您首先将了解如何管理SDK的设备类型,以及哪一个类型用于测试应用程序的不同方面. 设置设备工具包 设备工具包是SDK的一个重要概念:它们使您能够为数个设备和架构生成应用程序,无论您的开发环境如何.如果您还未添加任何设备工具包也不必担心,在您启动新项目时,您始终可以创建新工具包. 请查看工具包上的文件详细了解这些类型,或只需遵循后续步骤. 在首次创建项目时,S

为自己编写的VB.NET程序添加数字签名

步骤: 第一步:准备好自己开发的程序 第二步:使用Visual Studio自带的signtool工具,打开 第三步:输入下面的命令: signtool sign /a e:\sign\YouLispPay.exe 第四步:给数字签名添加时间戳 signtool timestamp  /t http://timestamp.comodoca.com/authenticode  e:\sign\YouLispPay.exe

如何阅读他人的程序代码

近日,在互联网上游荡,偶然发现一篇曾经的文章,是关于如何阅读他人程序代码的,阅后颇为受益,于是乎重新整理了一下格式,将此文转载如下: 如何阅读他人的程序代码 文/王建兴   作者简介: 王建兴,清华大学资讯工程系的博士研究生,研究兴趣包括计算机网络.点对点网络.分布式网络管理.以及行动式代理人,专长则是Internet应用系统的开发.曾参与过的开发项目性质十分广泛而且不同,从ERP.PC Game到P2P网络电话都在他的涉猎范围之内. 一.读懂程序代码,使心法皆为我所用 程序代码是别人写的,只有

如何快速读懂大型C++程序代码

要搞清楚别人的代码,首先,你要了解代码涉及的领域知识,这是最重要的,不懂领域知识,只看代码本身,不可能搞的明白.其次,你得找各种文档:需求文档(要做什么),设计文档(怎么做的),先搞清楚你即将要阅读是什么玩意,至少要把代码的整体结构搞清楚:整体架构如何,有几个模块,模块间通信方式,运行环境,构建工具等等.最后,如果不是全部的代码都归你管,重点关注将会属于你的模块,其他代码了解下即可. (2012-06-14 11:25:03) 标签: c编程 分类: C 学习 六个章节:( 1 )读懂程序码,使

【转】android应用程序签名

概述 Android系统要求,所有的程序经过数字签名后才能安装.Android系统使用这个证书来识别应用程序的作者,并且建立程序间的信任关系.证书不是用于用户控制哪些程序可以安装.证书不需要授权中心来签名:Android应用程序上使用自己签名的证书是完全允许且普遍的. 理解Android应用程序签名有以下几个重要点: 所有的应用程序都必须签名.系统不会安装任何一个不签名的程序. 你可以使用自己的证书来签名.不需要任何授权中心. 当你要为最终用户发布你的应用程序的时候,你必须签入一个合适的密钥.你

给新手程序员的一些建议

程序开发,普遍认为是一个不错的职业,薪水高.福利好,有挑战,成就感颇丰.但骚年们,想要成为一个资深的程序员,无所不通的全栈工程师,他的背后有多少辛酸和泪水,你们知道吗,那我们如何才能成为一个合格的程序员呢! 一:只要基础好,石头也砸不倒 扎实的基础,专业的技能,是你入行的根本:如假如给你一段代码,你要能读懂它的意思,要弄清楚哪段程序应该放在什么地方  <!DOCTYPE html>            ------声明一个HTML文档 <html lang="en"

docker 部署Spring Boot:Docker化Spring Boot应用程序

第一章 1.创建项目存放目录 mkdir /root/sproot -p 2.准备好Spring Boot应用程序 jar 包 testrest.jar 第二章 1. 安装docker 在所有节点执行:   setenforce 0 iptables -F iptables -t nat -F iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT iptables -I INPUT -s 192.168.0.0/24 -j ACCEPT

微信小程序人脸识别功能

本文档以微信小程序为例,微信小程序开发人脸核身功能需要两个申请:腾讯云申请人脸识别服务和小程序申请人脸识别服务(注意:只有符合以下条件的机构才能在小程序端申请) 政务:政府机构或事业单位金融:银行.保险医疗:公立医疗机构运营商:电信运营商教育:公立教育机构交通:航空.客运.网约车.交通卡.共享交通.轨道交通.租车旅游:酒店物流:快递.邮政.物流 主要参考文档: 1.腾讯云人脸核身文档 :https://cloud.tencent.com/product/faceid/developer 2.腾讯