Как перейти с платного Android-приложения на приложение, оплаченное с помощью биллинга в приложении? - PullRequest
16 голосов
/ 19 января 2012

В настоящее время у меня есть две версии моего приложения на рынке Android: платная и бесплатная.Но я хочу интегрировать биллинг в приложении в свое бесплатное приложение и взимать плату с подписчиков по более низкой цене, чем текущая цена платного приложения.

Но как мне справиться с этим для существующих клиентов?Кажется несправедливым позволить им снова платить за использование платной функциональности, в то время как они были первыми пользователями моего приложения.В идеале я реализую что-то, что даст существующим пользователям доступ к разблокированной функциональности в моем бесплатном приложении.

Есть идеи, как этого добиться?Достаточно набросков подходящего подхода, я не возражаю провести исследование о том, как на самом деле реализовать такой подход.

Ответы [ 5 ]

4 голосов
/ 04 июля 2013

Выпуск отдельной бесплатной версии вашего приложения;используйте платную версию, как если бы это был лицензионный ключ к бесплатной версии.

PackageManager manager = getPackageManager();
if (manager.checkSignatures("old.package.name", "new.package.name")
    == PackageManager.SIGNATURE_MATCH) {
    //full version
}
3 голосов
/ 19 января 2013

Вы можете сохранить обе платные и бесплатные версии / IAB, но основывать их обе на одном и том же библиотечном проекте, чтобы у вас был только один набор исходных файлов для поддерживать. Проект библиотеки может разблокировать все функции, доступные в настоящее время вашим платным пользователям для платной версии (активирован, скажем, путем тестирования имени пакета приложения), и разблокировать те же функции для бесплатной версии только тогда, когда оплата была произведена через IAB.

Это также позволит вам взимать плату с пользователей платной версии за дополнительные функции, помимо тех, которые присутствовали при оплате приложения, если бы вы добавили некоторые действительно важные функции в будущем и хотели бы взимать дополнительную сумму для тех.

Было бы также иметь преимущество в том, что ваши нынешние платные пользователи вообще не должны будут ничего делать; им кажется, что никаких изменений не произошло. В частности, им не нужно будет устанавливать ваше бесплатное приложение / IAB или проходить какие-либо специальные процедуры авторизации.

Недостатком будет то, что вам придется создавать и загружать два проекта для каждого выпуска. Однако это может быть частично автоматизировано.

1 голос
/ 08 января 2013
  • Увеличение версии базы данных (например, 34 -> 35)
  • В методе SqliteOpenHelper разблокируйте ваши функции для предыдущих пользователей

Пример:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
    if(oldVersion != 0 and oldVersion <= 34){
       appConf.unlockAllFeatures()
    }
}
  • Если ваше приложение еще не использует базу данных, сделайте это в onCreate, но обратите внимание, что onCreate вызывается при первом вызове базы данных
0 голосов
/ 07 января 2013

Поправь меня, если я неправильно понял.Вы упомянули о подписке, что означает данные пользователя + база данных + дополнительная информация?

, если в вашем приложении нет базы данных или чего-либо, что могло бы хранить записи пользователя.Я бы посоветовал выпустить обновление платного приложения и включить общий доступ или общий файл ini.Используйте бесплатное приложение, чтобы прочитать тот же файл sharedpreferenece или свой собственный INI-файл, чтобы прочитать настройки.

переход к базе данных поможет вам в будущем для более активных отношений с клиентами.

0 голосов
/ 19 января 2012

Веб-сайт Android-девайса хорошо это освещает.

http://developer.android.com/guide/market/billing/index.html

...