繁体   English   中英

在Android中为用户解锁应用功能的最佳做法是什么?

[英]What is the best practice for unlocking app features to the user in Android?

我刚刚开发了一个Android应用程序,我想免费分发。

为了能够为我的工作赚取一些钱,我想在应用中添加一些广告或通知。 如果用户决定捐出一些钱,他将使用某种解锁代码收到“捐赠”版本的解锁代码。

在Android中实现这个有什么“最佳实践”吗?

谢谢!

就在这里。 这是应用内结算 :-)

* 因主持人评论而编辑。

阅读上面的链接后,您将了解您可以实现各种软件包,这些软件包将提供所需的功能。 在您的情况下,您将拥有用户将购买的“捐赠产品”(包)。 有些细节需要在这里解决,恕我直言:

  1. 大多数简单的应用程序分别是1美元,2美元,5美元,10美元和20美元,但当然也可以提供更高的价值。 与多应用程序模式相比,这具有简化代码逻辑的优势,因为您管理一个代码分支内的所有内容,并且不需要使用不同的应用程序。

  2. 由于您提供捐赠套餐,因此用户可以多次捐赠给定数量是合乎逻辑的。 因此,您应该确保捐赠包 - 您在市场控制台中添加的产品 - 是不受管理的

这是一般概念以及关于您的特定案例的两个主要问题。

注意:我给出原始的,非常简单的答案(仍然,我 同意主持人评论)的原因是因为应用程序内的计费很容易实现。 真的没什么好说的。 试试吧!

我用过这种方法:

  • 我发布了我的免费Android应用程序“我的应用程序”
  • 我发布了一个名为“MyApp Donate”的空付费应用程序(它将只有一个活动,其中包含一些文字,例如“谢谢你捐赠...... bla bla”)

让我们假设在“我的应用程序”中您将显示广告,您可以在某处按“通过捐赠删除广告”按钮,该按钮将用户带到“我的应用捐赠”的市场页面。

在我的应用程序中,您根据已安装“我的应用程序捐赠”程序包的事实决定是否必须显示广告。

这听起来很复杂,但实施起来非常简单。 您可以使用以下代码检查是否安装了软件包:

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 Marketplace进行应用内结算 还有很多应用程序提供免费版本和付费版本,其中付费版本具有更多功能或更少的广告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM