Версии приложений Android (бесплатные и платные) - сообщать классам Library Project, является ли приложение бесплатным или платным - PullRequest
2 голосов
/ 26 июля 2011

У меня есть проект приложения для Android, который содержит весь мой код. Я сделал это "приложение" проектом библиотеки, как определено здесь на android.developer.com. .

Следовательно, я сделал два новых проекта Android, которые используют этот проект библиотеки. Новые имена пакетов для каждого из новых проектов:

com.myapps.freeapp
com.myapps.paidapp

Как вы, наверное, видите, я пытаюсь опубликовать бесплатные и платные версии приложения.

Как лучше всего сообщить проекту библиотеки, является ли установленное приложение бесплатной или платной?

Ответы [ 2 ]

5 голосов
/ 24 декабря 2011

Это из моего сообщения в блоге , в котором описывается, как создать бесплатную / платную версию, используя проект библиотеки.

Как правило, вы создадите три проекта; бесплатный проект, платный проект и проект библиотеки.

Затем вы создадите файл 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.

0 голосов
/ 26 июля 2011

«Платная» и «бесплатная» информация зависит от каждого приложения - и библиотека не знает такой информации.

Если у вас есть определенный код, который зависит от этих приложений (т. е. код для проверки лицензии, например) , он должен быть в конкретных приложениях, а не в той части, которая является общей для обоих.

...