是否可以将广播的范围限定在某个应用程序上?

| 我想使用sendBroadcast广播一个意图,该意图只能由发起它的那个应用程序接收。 该用例用于我计划在已构建的多个项目之间使用的身份验证模块。当前,当收到401(授权失败)响应代码时,它会广播一个意图,然后可以将其连接到清单中以将用户带回登录页面。 因此,为了清楚起见,我想知道是否可以这样做:
Intent i = new Intent(\"my.custom.logout.broadcast.path.that.will.be.the.same.in.multiple.apps\");
sendBroadcast(i);
并且以某种方式,其他使用完全相同的未修改代码库的应用程序也不会理解这个意图。     
已邀请:
        这不是问题的一部分,但是您应该使用权限来限制谁可以发送/接收广播,尤其是因为您要处理身份验证时。实际上,我强烈建议您研究AccountManager(在API演示中) 继续..一种解决方案是在Intent Extra中传递原始应用程序的程序包名称或特定的权限字符串,然后在您响应时,以相同的方式在响应中使用该程序包名称或权限。不幸的是,您无法在“广播意图”中定位特定的包。 另一种解决方案是使用原始应用程序中的
PendingIntent.getActivity()
,将
PendingIntent
作为额外的内容(
Intent#putExtra()
)放入新的广播
Intent
中,并使用上面的权限模型进行广播(以便发送方和接收方可以正确处理权限)。广播接收器完成其工作后,可以使用ѭ2来启动目标活动(包括附加其他功能的能力)     
        为此,您可以使用LocalBroadcastManager,它是专门为应用程序内通信而设计的。     

要回复问题请先登录注册