Как я могу использовать заплаченную версию своего приложения как “ключ” к бесплатной версии?

Скажем, например то, что у меня есть некоторое приложение для Android, которое делает X. Бесплатная версия имеет рекламу или основные характеристики. Я хочу иметь заплаченную версию, которая удаляет рекламу и добавляет дополнительные опции.

Как я могу использовать платное приложение в качестве "лицензионного ключа" для разблокирования функций в бесплатном приложении?

Таким образом, пользователь установил бы бесплатное приложение, затем установил бы платное приложение для получения дополнительных функций, но они все еще запустят бесплатное приложение (который был бы теперь разблокирован). Что лучший подход к выполнению этого?

53
задан tshepang 5 November 2013 в 07:23
поделиться

4 ответа

Большинство разработчиков приложений выбирают только одну версию приложения, но функции включаются (дополнительные) или отключаются (реклама) в зависимости от наличия «лицензионного ключа».

-1
ответ дан 7 November 2019 в 08:47
поделиться

Вот один пример того, как это можно сделать:

Intent unlockerAppPresence = null;
APP_LITE_VERSION = false;
try 
{
    unlockerAppPresence = context.getPackageManager().getLaunchIntentForPackage("nameofthepackagethatunlockyoursoftware");
} 
catch (Exception e1) 
{
    APP_LITE_VERSION  = true;
}
if (unlockerAppPresence == null)
    APP_LITE_VERSION  = true;

Объедините это с проверкой подписи разработчика приложения (как отмечает @Fedor), и все будет в порядке.

1
ответ дан 7 November 2019 в 08:47
поделиться

Используйте PackageManager, чтобы убедиться, что ваш платный пакет установлен. И убедитесь, что ваша подпись бесплатного пакета соответствует установленной подписи премиум-пакета. В противном случае кто-то сможет установить неподписанное приложение с именем пакета, совпадающим с названием вашего платного пакета, и таким образом разблокировать премиум.

Этот пост может помочь вам найти вашу подпись. Определить, было ли приложение загружено с Android Market

37
ответ дан 7 November 2019 в 08:47
поделиться

Если оба приложения принадлежат одному разработчику и подписаны одним и тем же ключом, они должны иметь возможность обмениваться информацией в частном порядке.Вероятно, вы могли бы использовать файл (хранящийся с MODE_PRIVATE) , но я думаю, что самый простой способ - использовать SharedPreferences - установить флаг в платном приложении, который будет прочитан бесплатным. См. http://developer.android.com/guide/topics/data/data-storage.html . Не знаю, будет ли его легко обойти, особенно на устройствах с root-доступом ...

Другой способ - проверить, установлено ли платное приложение, например, проверив, принимает ли оно конкретное намерение. См. Также: http://developer.android.com/resources/articles/can-i-use-this-intent.html ; в этом примере они проверяют, доступен ли сканер штрих-кода ZXing таким образом.

В любом случае, еще одним поворотом идеи было бы то, что вы могли бы «включить» несколько приложений, заплатив только одну, если хотите. Ваше платное приложение будет простым «поддержите этого разработчика», которое удалит рекламу из всех ваших приложений. ИМХО, это интересная модель оплаты.

3
ответ дан 7 November 2019 в 08:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: