【问题标题】:On Android, how to use code to distinguish free app vs paid app using the same library在 Android 上,如何使用代码区分使用相同库的免费应用和付费应用
【发布时间】:2011-06-29 08:12:37
【问题描述】:

我发现这篇文章是关于使用库进行付费与免费的。它特别提到了以下内容:“可能有一个指示付费或免费状态的布尔资源,可以通过库项目中的代码进行测试,并相应地打开或关闭功能。通常库项目将具有默认的付费状态值资源,免费版本会将其覆盖为免费值。”我怎样才能制作一个可以在免费版本中覆盖的布尔值?基本上我怎么能在我的公共库代码中做一些事情,如果应用程序是免费版本然后显示广告?

【问题讨论】:

  • 你想明白了吗?我想做同样的事情。

标签: android


【解决方案1】:

一种方法是使用字符串资源文件——因为这些值是“级联”的。

库代码被复制到免费和付费项目中,并在该项目的上下文中运行,这意味着它首先查看“本地”字符串资源。

只要您还在库项目中指定该字符串资源名称,它就会编译但在执行时使用更“本地”的值。

在您的库项目中,在 res/values/strings.xml 中指定一个名为“paid”的字符串

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
    <string name="app_name">My app</string>
    <string name="paid">false</string>
</resources>

在您的免费项目中,指定:

<string name="paid">false</string>

在您的付费项目中,指定:

<string name="paid">true</string>

您现在可以在您的库项目中访问它:

boolean paid = Boolean.parseBoolean(getString(R.string.paid));

当你运行免费项目时它会报告 False,当你运行付费项目时它会报告 True。

然后你只需要检查那个布尔值并分支......

if(!paid) {
  //show an ad (or whatever)
}

if(paid) {
  //load more game levels (or whatever)
}

【讨论】:

    【解决方案2】:

    不仅是安卓。这是其他平台的正常情况。您可以将您的信息存储在用户的设备或您的服务中(如果您有网站)。然后在用户使用应用程序时进行检查。

    在 Android 上,您可以使用SharedPreferences

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 2017-02-14
      相关资源
      最近更新 更多