無料で配布したいAndroidアプリを開発しました。
仕事でお金を稼ぐために、アプリに広告や通知を追加したいと考えています。ユーザーがお金を寄付することを決定した場合、ユーザーはある種のロック解除コードを使用して「寄付」バージョンのロック解除コードを受け取ります。
Androidでこれを実装するための「ベストプラクティス」はありますか?
ありがとう!
はいあります。アプリ内課金です。:-)
※モデレーターコメントのため編集しました。
上記のリンクを読んだ後、目的の機能をそれぞれ提供するさまざまなパッケージを実装できることがわかります。あなたの場合、ユーザーが購入する「寄付製品」(パッケージ)があります。ここで対処する必要がある詳細の一部、IMHO:
最もシンプルなアプリは 1 ドル、2 ドル、5 ドル、10 ドル、20 ドルですが、もちろん、より高い値を提供することもできます。複数アプリ パターンと比較すると、1 つのコード ブランチ内ですべてを管理し、さまざまなアプリケーションをいじる必要がないため、コード ロジックが簡素化されるという利点があります。
寄付パッケージを提供しているため、ユーザーがその特定の数量を複数回寄付できるのは当然です。したがって、寄付パッケージ (マーケット コンソールに追加する商品) がunmanagedであることを確認する必要があります。
これは、特定のケースに関する 2 つの主な懸念事項を含む一般的な概念です。
注: 元の非常に単純な回答をした理由 (それでも、モデレーターのコメントに同意しませ ん ) は、アプリ内課金の実装が非常に簡単だからです。本当に言うべきことはあまりありません。それを試してみてください!
私はこのアプローチを使用しました:
「My App」で広告を表示すると仮定しましょう。どこかに「寄付して広告を削除する」ボタンがあり、ユーザーを「My App Donate」のマーケット ページに移動させることができます。
My App では、パッケージ「My App Donate」がインストールされているかどうかに基づいて、広告を表示する必要があるかどうかを決定します。
複雑に聞こえますが、実装は非常に簡単です。次のコードを使用して、パッケージがインストールされているかどうかを確認できます。
public static boolean isPackageInstalled (final Context ctx, final String packageName) {
boolean result = false;
try {
final PackageManager pm = ctx.getPackageManager();
final PackageInfo pi = pm.getPackageInfo(packageName, 0);
if (pi != null && pi.applicationInfo.enabled)
result = true;
}
catch (final Throwable e) {
if (Dbg.IS_DEBUG) Dbg.debug("Package not installed: "+packageName);
}
return result;
}
ps。アプリ内課金の統合はそれほど簡単ではありません。さらに、アプリはアプリ内課金がサポートされている国でのみ表示されます。あなたの場合、それは価値がありません。
これは、Android マーケットプレイスのアプリ内課金で行うことができます。無料版と有料版を提供するアプリもたくさんあり、有料版の方が機能が多く、広告が少なくなっています。