我刚刚开发了一个我想免费分发的 Android 应用程序。
为了能够为我的工作赚取一些钱,我想在应用程序中添加一些广告或通知。如果用户决定捐赠一些钱,他将收到使用某种解锁代码的“捐赠”版本的解锁代码。
在 Android 中实现这一点是否有任何“最佳实践”?
谢谢!
就在这里。这是应用内计费。:-)
*因版主评论而编辑。
阅读上面的链接后,您将了解您可以实现各种包,每个包都将提供所需的功能。在您的情况下,您将拥有用户将购买的“捐赠产品”(包裹)。恕我直言,这里需要解决的一些细节:
大多数简单的应用程序是 1 美元、2 美元、5 美元、10 美元和 20 美元,但您当然也可以提供更高的价值。与多应用模式相比,这具有简化代码逻辑的优势,因为您可以在一个代码分支中管理所有内容,而无需摆弄不同的应用程序。
由于您提供捐赠包,因此用户可以多次捐赠给定数量是合乎逻辑的。因此,您只需确保捐赠包(您在市场控制台中添加的产品)是不受管理的。
这是一般概念以及关于您的特定案例的两个主要问题。
注意:我之所以给出原始的、非常简单的答案(不过,我 不 同意版主的评论)是因为应用内计费很容易实现。真的没什么好说的。尝试一下!
我使用了这种方法:
假设您将在“我的应用程序”中展示广告,您可以在某处有一个“通过捐赠删除广告”按钮,该按钮将用户带到“我的应用程序捐赠”的市场页面。
在我的应用程序中,您可以根据是否安装了“我的应用程序捐赠”包这一事实来决定是否必须显示广告。
这听起来很复杂,但它非常容易实现。您可以使用以下代码检查是否安装了软件包:
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;
}
附言。应用内结算不是那么容易集成,而且您的应用仅在支持应用内的国家/地区可见。在你的情况下这不值得。
您可以通过 Android Marketplace 使用应用内计费来完成此操作。还有很多应用程序提供免费版本和付费版本,其中付费版本的功能更多或广告更少。