みなさんこんにちはこんばんわ。すっかり夏になりまして暑さに弱い自分は溶けかかってます。バニラアイスが食べたいな٩(๑❛ᴗ❛๑)۶

さて、今回はandroidのアプリ内課金を試すのですがサンプルアプリがダウンロードできるので、それを実行してみたいと思います。

事務的な作業

テストだけでも以下の登録は必要になります。

  • Android Marketの開発者アカウント
  • Google checkoutの財務情報登録

あって困る物ではないので、まだの方はこの機会に登録してみてはどうでしょうか?

■サンプルアプリのダウンロード

以下のような手順でダウンロードします。

  1. AVD Managerを起動
  2. Avalilable packages
  3. Third party Add-ons
  4. Google Inc.
  5. Google Market Billing package, revision 1をチェック

上述の作業が終わるとサンプルアプリが[sdkdir]/extras/google/market_billingに保存されています。

■公開鍵の追記

プロフィールの編集でライセンスとアプリ内課金の公開鍵をコピーし、src/com/example/dungeons/Security.javaを編集します。以下の部分にコピーしたコードをペーストしてください。

[cc lang="java]
String base64EncodedPublicKey = “your public key here”;
[/cc]

■プロジェクトのインポート

変更したらeclipseにインポートします。プロジェクトで右クリックし新規プロジェクトを選択し、androidのプロジェクトを新たに作ります。

※但し、既存のソースから新規作成するようにしてください。

■パッケージ名の変更

公式マニュアルに以下のように記載されています。com.exampleというパッケージ名は使用できませんので、パッケージ名を変更します。

The current package name is com.example.dungeons. Android Market does not let you upload applications with package names that contain com.example, so you must change the package name to something else.

パッケージ・エクスプローラのウィンドウでパッケージを選択し、eclipseメニューのリファクタリングから名前変更をします。Manifestのパッケージ名が変わらないようなのでファイルを開いて修正してください。

手動でパッケージ名の変更をおこなう場合は以下の項目を変更します。

  • ディレクトリ名
  • マニフェストファイル
  • package
  • import

■デバッグ

以下の部分を

[cc lang="java]
public static final boolean DEBUG = false;
[/cc]

以下のように変更します。

[cc lang="java]
public static final boolean DEBUG = true;
[/cc]

■マーケットへの登録

通常のアプリと同様に署名してマーケットにアップする必要があります。但し、絶対に公開してはいけません。下書きのまま保存します。

■アイテムの登録

Google checkoutでmerchant登録がされている場合、ダッシュボードのアプリケーションのタイトルの下に「アプリ内サービス」と表示されていますので、ここからアイテムを登録します。

サンプルアプリのアプリ内サービス IDはそれぞれ「sword_001」と「potion_001」です。こちらは公開する必要があります。

■実機でテスト

署名されているアプリケーションからリクエストをする必要がありますので、以下のコマンドをクライアントで実行しアップロードしたapkファイルを直接端末にインストールします。。

[cc lang="bash"]
./adb install Dungeous.apk
[/cc]

※USBから直接インストールすると、RESULT_DEVELOPER_ERRORというエラーが返ってきて正しくテストできません。

参考

いかがでしょうか?androidではiOSのIn app purchaseとは違い実際の課金処理はマーケットアプリが行っています。この辺がandroidっぽくてドキドキしますね(♡´ω`♡)。次回はこのサンプルの動きを元にして実装を解説できたらと思います。

Post Navigation