我有app A是免费的。我有应用程序B这是一个捐赠应用程序。我知道人们宁愿花4美元买咖啡,也可以通过其他渠道免费获得我的应用程序,但很好。
如果应用B合法且来自市场并付费,我想在应用A中启用更多功能。
所以我很好奇我是否只是更改了市场许可证代码中的软件包名称,以便检查应用程序B,即使应用程序A正在执行它。
例如,这一行来自lvl库代码:
mChecker = new LicenseChecker(ctx, new ServerManagedPolicy(ctx,
new AESObfuscator(SALT, ctx.getPackageName(), deviceId)),
BASE64_PUBLIC_KEY);
我想用app B中的包名替换ctx.getPackageName(),这当然是我的应用程序,我知道。例如:
mChecker = new LicenseChecker(ctx, new ServerManagedPolicy(ctx,
new AESObfuscator(SALT, com.something.app.b, deviceId)),
BASE64_PUBLIC_KEY);
有没有人有这方面的经验?
答案 0 :(得分:1)
更改obfuscator构造函数的参数不会做你想要的。检查的包由LicenseChecker构造函数从第一个参数确定。它可能会为LicenseChecker定义一个新的构造函数,它接受包B的包名和版本代码。
如果应用A还想检查自己的许可证,您还需要扩展ServerManagedPolicy,以便为应用A的首选项文件中的每个应用保留单独的缓存数据。
请注意,即使这样做,如果您更新市场中的应用B,它也会中断,因为您需要将特定版本代码连接到应用A中。