如何检查其他应用程序的Android许可权限

8
我有一个免费的应用程序,它有一些付费升级应用程序供您购买。基础游戏是免费的,始终是用户启动的应用程序,它检测其他应用程序的存在并根据需要解锁各种升级功能。
我想使用新的许可证服务来检测已购买的应用程序是否获得许可,并将包名称传递给许可证服务以验证是否被授权(盲目地遵循示例,我愚蠢地认为将包名称传递给混淆器意味着包名称被传递到许可证服务器-糟糕)。然而,我刚刚意识到这是多么愚蠢,而且无论如何我都遇到了难题:“如果您已经将应用程序发布为免费,则无法上传包含许可证的更新版本(即使用相同包名称并包含许可证权限的应用程序)”。
所以,两个问题:是否有计划实现我正在寻找的功能:从免费应用程序内部检查我的其他付费发布的应用程序是否获得许可?
如果没有,那么达到我所寻求的最佳方法是什么?我考虑可能向每个安装的升级应用程序发送一个意图,让它们执行许可检查,然后让升级应用程序将响应传回到我的基础应用程序。听起来有些混乱-有更好的想法吗?
非常感谢!
1个回答

7
所以,有两个问题:是否有计划实现我所寻求的功能:从免费应用程序内部检查我的其他付费已发布应用程序是否有许可证?
没有办法实现这个功能。
如果没有,那么实现我所寻求的最佳方式是什么?我考虑可能向每个安装的升级发送一个意图,让它们执行许可证检查,然后让升级将响应传回到我的基本应用程序。听起来有点混乱 - 有更好的想法吗?
假设您没有其他通信客户端的方法(例如,可以写入许可证状态的共享存储),那么这听起来像是最合理的方法。 您可能希望确保使用自定义权限来保护这些方法,以便只有您的应用程序可以向您的应用程序广播许可证状态。

1
如果没有得到适当的保护,某人可能会伪造意图并创建自己的虚假升级数据包。注意这一点加1分。 - Janusz
谢谢你的回复,Christopher - 非常感谢。 - Kenton Price
+1 聪明的想法,尽管我不确定这是否可行。 - yorkw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接