2012-01-18 2 views
16

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

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

Любые идеи о том, как это сделать? Очерк хорошего подхода к принятию достаточно, я не против делать некоторые исследования о том, как реально реализовать такой подход.

+2

Вы когда-нибудь находили решение для этого? Я смотрю на то, чтобы сделать то же самое, и мне нужно найти способ предоставить существующим платным пользователям функциональность, которую я планирую разблокировать через покупки в приложении. Я рассматривал возможность сделать что-то подобное (http://stackoverflow.com/questions/2133986/how-to-know-my-android-application-has-been-upgraded-in-order-to-reset-an-alarm) чтобы обнаружить обновление до чистой установки, но беспокоиться о том, что он не будет столь же безопасным, как предоставление существующим пользователям бесплатных покупок в приложении бесплатно (если это возможно). –

+0

Я еще не нашел решение. Я думал о решении, которое проверяет, установлено ли платное приложение на устройстве, и если да, добавьте запись в общие настройки обновленного бесплатного приложения с подписками в приложении, которые указывают, что пользователь должен иметь разблокированную функциональность мое приложение. Но я не трачу времени на изучение плюсов и минусов такого решения. –

+0

@ Jan-Henk Нашли решение еще? Как ты сделал это? Я тоже хочу это реализовать. Поделитесь своим опытом. Я купил платную версию SwiftKey. Затем Swiftkey превратилась в концепцию покупки приложений. Я не знаю, как они это сделали, но каким-то образом они «знают», что мне платят за пользователя и дают мне 1 тему бесплатно. – rxlky

ответ

-1

Веб-сайт Android dev охватывает это довольно хорошо.

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

+7

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

+0

Сайт разработчика Android не распространяется на этот случай использования вообще. – donturner

0

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

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

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

1
  • Increment ваша версия базы данных (например, 34 -> 35).
  • В методе SqliteOpenHelper разблокировать возможности для предыдущих пользователей

Пример:

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

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

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

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

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

+0

Только что заметил, что ваш вопрос был на 2012 год! Некоторые из других ответов здесь - с 2013 года, поэтому я пропустил это. Надеюсь, вы решили свою проблему; возможно, этот ответ поможет кому-то другому. – Carl

4

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

PackageManager manager = getPackageManager(); 
if (manager.checkSignatures("old.package.name", "new.package.name") 
    == PackageManager.SIGNATURE_MATCH) { 
    //full version 
} 
+0

Это самое простое решение. Genius! – hunterp

+1

Это простое решение, но не требует ли он, чтобы старые установленные платные приложения были установлены, хотя они больше не используют его? –

+0

Вы можете запустить проверку один раз, если у пользователя установлено платное приложение, а затем сохранить результат в постоянном хранилище, чтобы последующие прогоны бесплатного приложения всегда запускали полную версию. После того, как вы сделали это, вы можете показать диалог пользователю, который сообщает им, чтобы удалить платную версию. – donturner