2013-02-28 1 views
8

У меня есть платное приложение в Google Play сегодня, что я хочу перейти на бесплатное приложение с 3 покупками In-App. Проблема заключается в том, как «отдавать» покупку In-App существующим клиентам, которые уже заплатили за приложение.Изменение платного Android-приложения для бесплатного использования в приложении Биллинг - дедушка существующих клиентов

У меня просто была мысль - может ли лицензия сделать трюк?

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

Можно ли проверить лицензию, и в случае, если она найдена, предоставит пользователю доступ к тем же функциям, что и 3 покупкам In-App?

ответ

2

Насколько я знаю, нет хорошего способа предоставить пользователю бесплатную покупку через приложение, когда покупка еще не бесплатна (например, через купон).

Существует дискуссия о некоторых возможных способах сделать это в How can I use the paid version of my app as a “key” to the free version?

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

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

1

Я думаю, вы можете сделать что-то подобное, чтобы убедиться, что приложение «pro» доступно и подписано одной и той же подписью.

public boolean isProAppPresent() 
{ 
    try 
    { 
     PackageInfo info = context.getPackageManager().getPackageInfo("x.x.x.pro", 
       PackageManager.GET_META_DATA); 
     Log.d(TAG, "Pro app is installed: " + info.applicationInfo.name); 
     return context.getPackageManager().checkSignatures("x.x.x", 
       "x.x.x.pro") == PackageManager.SIGNATURE_MATCH; 
    } 
    catch (NameNotFoundException e) 
    { 
     return false; 
    } 
} 

Это легко сделать, но я не уверен, что это полная защита.

 Смежные вопросы

  • Нет связанных вопросов^_^