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