Androidでアプリ内課金の仕組みを実装しなくてはならなくなりました。
アプリ側の実装も必要ですが、デベロッパーコンソールから有料アイテムを登録する作業も必要です。
コンソールから登録しないといけないアイテム数が多いのでCSVで一括登録したいんですがこれがうまくいかない。特に価格のところがどんな値を入れてもエラーになり、しかも正しい書式をGoogle側が示してくれない。これはエラー表示するときに合わせて正しい表記を出力すべきですねGoogleさんは。
クソだと思いました。
で、いろいろやっていたところ、やっとうまくいきました。
ポイント:
■CSVファイルの保存コードは「UTF-8(BOMなし)」。
■日本円で99円の表記は、「JP; 99000000」。
■つまり、日本円を示すために「JP; 」。
■99という数字を示すために「99000000」(ゼロが6つ)。
■1行目をタイトル行にせずいきなりデータ行から始める。
見本データ一行分(ブログ記事では改行が挟まるかもしれませんが一行です):
a0105,published,managed_by_android,false,ja_JP; アイテム名; アイテム詳細記述,false,JP; 99000000
----------
ちなみにダウンロードCSVの一行目(タイトル行)は以下のような感じでした(アップロードCSVファイルには一行目のタイトル行は不要)。
Product ID,Published State,Purchase Type,Auto Translate,Locale; Title; Description,Auto Fill Prices,Price
仕事中に気づいたプログラミング上のTipsや備忘録をメモしておくための場所です。
[PHP][Android]など
ブログ主:いしいたける
メインのWebサイト(マンガ) : http://loveandcomic.com/
2015年4月24日金曜日
2015年4月6日月曜日
【Android】メールアプリを暗黙的インテントで呼び出し、送信後に元のアプリに戻る
ネット上のニュースなどを集めるアプリで、ニュース記事を共有する機能があるとする。
■ツイッターに投稿
■LINEに投稿
■フェイスブックに投稿
■メールで送信
メールで送信させるときは、メールアプリを暗黙的インテントで呼び出していた。
しかし、メール送信後、画面がメールアプリのままなので元のアプリまでユーザーに操作して戻ってもらわねばならなかった。
これを修正。
こうしたい:
■メール編集画面から戻るボタン→元のアプリに戻る。
■メール送信後→元のアプリに戻る。
意外と簡単に出来た。
※String url_for_mailto はmailtoのリンク文字列
この処理は「メール送信ボタン」のオンクリックリスナーなどに書かれる。
----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);
//インテント作成
Intent intent = new Intent(
Intent.ACTION_SENDTO, //メールソフト起動
uri //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//スタートアクティビティの主語はアクティビティインスタンス
activity.startActivity(intent);
----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);
//インテント作成
Intent intent = new Intent(
Intent.ACTION_SENDTO, //メールソフト起動
uri //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//スタートアクティビティの主語はアクティビティインスタンス
//インテントの開始をstartActivityForResult メソッドで行えば、メール送信後(または戻るボタンを押した時)このアプリに戻る
activity.startActivityForResult(intent, 1);
つまり、startActivityForResultメソッドを使うということですね。
■ツイッターに投稿
■LINEに投稿
■フェイスブックに投稿
■メールで送信
メールで送信させるときは、メールアプリを暗黙的インテントで呼び出していた。
しかし、メール送信後、画面がメールアプリのままなので元のアプリまでユーザーに操作して戻ってもらわねばならなかった。
これを修正。
こうしたい:
■メール編集画面から戻るボタン→元のアプリに戻る。
■メール送信後→元のアプリに戻る。
意外と簡単に出来た。
※String url_for_mailto はmailtoのリンク文字列
この処理は「メール送信ボタン」のオンクリックリスナーなどに書かれる。
----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);
//インテント作成
Intent intent = new Intent(
Intent.ACTION_SENDTO, //メールソフト起動
uri //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//スタートアクティビティの主語はアクティビティインスタンス
activity.startActivity(intent);
----------------------------
修正前
----------------------------
uri = Uri.parse(url_for_mailto);
//インテント作成
Intent intent = new Intent(
Intent.ACTION_SENDTO, //メールソフト起動
uri //URIインスタンス
);
//メールアプリは新たに立ち上げさせる
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//スタートアクティビティの主語はアクティビティインスタンス
//インテントの開始をstartActivityForResult メソッドで行えば、メール送信後(または戻るボタンを押した時)このアプリに戻る
activity.startActivityForResult(intent, 1);
つまり、startActivityForResultメソッドを使うということですね。
登録:
投稿 (Atom)