2

我有一个包含我所有代码的 Android 应用程序项目。我已经将此“应用程序”作为在 android.developer.com 上定义的库项目。.

因此,我制作了两个利用这个库项目的新 Android 项目。每个新项目的新包名称为:

com.myapps.freeapp
com.myapps.paidapp

正如您可能看到的,我正在尝试发布该应用程序的免费和付费版本。

告诉库项目安装的应用程序是免费版还是付费版的最佳方法是什么?

4

2 回答 2

5

这来自我的博客文章,描述了如何使用库项目构建免费/付费版本。

通常,您将创建三个项目;免费项目、付费项目和图书馆项目。

然后,您将在库项目中创建一个 Build.java 文件,如下所示:

public class Build {
    public final static int FREE = 1;
    public final static int PAID = 2;
    public static int getBuild(Context context){
        return context.getResources().getInteger(R.integer.build);
    }
}

现在,您将在每个项目中创建一个 build.xml 资源:

[库]/resources/values/build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <integer name="build">0</integer>
</resources>

[免费]/resources/values/build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <integer name="build">1</integer>
</resources>

[付费]/resources/values/build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <integer name="build">2</integer>
</resources>

然后,您将能够在运行时检查版本:

if (Build.getBuild(context) == Build.FREE){
   // Do the free stuff
} else {
   // Do the paid stuff
}

博客文章详细介绍了在 Linux 命令行中从头开始创建项目所需的确切步骤。

于 2011-12-23T23:30:46.790 回答
0

“付费”和“免费”信息取决于每个应用程序——图书馆不知道这些信息。

如果您有一些依赖于这些应用程序的特定代码(例如,检查许可证的代码),它应该在特定应用程序中,而不是在两者共有的部分中。

于 2011-07-25T21:40:56.677 回答