根据android documentation:
或者,从冰激凌三明治开始,您还可以使用intent.setpackage安全地将广播限制为单个应用程序
姜饼(可能使用兼容库)中是否有任何方法可以限制sendbroadcat()事件,使其仅将其发送到指定的包?
最佳答案
我的第一个建议是尽可能使用LocalBroadcastManager。这允许您完全忽略任何安全问题。
如果您确实需要将广播从一个应用程序发送到另一个应用程序,则registerReceiver()在ICS之前确实不遵守setpackage限制,因此在此之前您不能依赖它。做你想做的事没有秘密的诀窍,只是平台没有它的设施。
也就是说…如果要指定一个显式的包名,为什么不一直使用Intent.setComponent()?
还要记住,即使是setpackage()或setcomponent()也不是自动完全安全的——您仍然假设您知道谁在实现该包名称,并且完全有可能使用不同的应用程序,而不是您希望通过侧加载安装的应用程序,ev如果你在游戏商店里拥有这个名字。