Как проверить разрешение на лицензирование Android для других приложений

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

Я хотел использовать новую службу лицензирования, чтобы определить, были ли купленные приложения лицензированы, и передать имя пакета службе лицензирования, чтобы проверить, авторизовано ли оно (и слепо следуя образцу, я по глупости предположил, что передача имени пакета в обфускатор имел в виду, что имя пакета было передано серверу лицензирования - упс). Однако я только что понял, насколько это было глупо, и в любом случае я наткнулся на кирпичную стену: «Если вы уже опубликовали свое приложение как бесплатное, вы не сможете загрузить обновленную версию, включающую лицензирование (т. е. приложение, использующее то же имя пакета и включающее лицензионное разрешение)".

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

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

Спасибо огромное!


person Kenton Price    schedule 02.08.2010    source источник


Ответы (1)


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

Это невозможно сделать.

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

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

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

person Christopher Orr    schedule 02.08.2010
comment
+1 за замечание, что кто-то может подделать намерения, если они не будут должным образом защищены, и создать свои собственные поддельные пакеты обновлений. - person Janusz; 02.08.2010
comment
Спасибо за это, Кристофер - оценил. - person Kenton Price; 02.08.2010
comment
+1 Умная идея, хотя я не уверен, что это действительно выполнимо. - person yorkw; 13.12.2012