在Android上,如何使用代码来区分使用相同库的免费应用程序与付费应用程序

时间:2011-06-29 08:12:38

标签: android

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

2 个答案:

答案 0 :(得分:5)

执行此操作的一种方法是使用字符串资源文件 - 因为值是“级联”。

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

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

在库项目中,在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)
}

答案 1 :(得分:0)

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

在Android上,您可以使用SharedPreferences