Могу ли я запросить сервер лицензий Android Market из приложения A, чтобы узнать, было ли приложение B куплено законно с рынка? - PullRequest
3 голосов
/ 30 января 2011

У меня есть приложение A, которое бесплатно.У меня есть приложение B, которое представляет собой приложение для пожертвований.Я знаю, что люди, скорее, платят 4 доллара за кофе и получают мое приложение бесплатно по другим каналам, ну да ладно.

Я хочу включить больше функций в приложении A, если приложение B легально, с рынка и оплачено.

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

Например, эта строка изкод библиотеки lvl:

mChecker = new LicenseChecker(ctx, new ServerManagedPolicy(ctx,
new AESObfuscator(SALT, ctx.getPackageName(), deviceId)),
BASE64_PUBLIC_KEY);

Я хотел бы заменить ctx.getPackageName () именем пакета из приложения B, которое, конечно, является моим приложением, и я знаю.Например:

mChecker = new LicenseChecker(ctx, new ServerManagedPolicy(ctx,
new AESObfuscator(SALT, com.something.app.b, deviceId)),
BASE64_PUBLIC_KEY);

У кого-нибудь есть опыт с этим?

1 Ответ

1 голос
/ 30 января 2011

Изменение аргументов в конструкторе обфускатора не будет делать то, что вы хотите.Проверяемый пакет определяется конструктором LicenseChecker из первого аргумента.Он может работать для определения нового конструктора для LicenseChecker, который принимает имя пакета и код версии для пакета B.

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

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

...