仅使用一个应用程序发送广播意图而不使用显式意图

时间:2014-01-15 15:47:09

标签: android android-intent

我有问题。我正在做一个外部Android服务,应用程序可以在其中注册以接收信息。信息通过广播从服务返回到应用程序,并通过broadcastReceiver接收。

问题是,如果我sendBroadcast,任何应用都可以收听其他人的信息,我可以使用意图过滤器上的类别,但这两个应用都可以使用相同的类别,或者是一个恶意应用可以在pourpose上做到这一点。

解决方案是明确的意图,但为此我需要应用程序注册包和它将接收意图的类。我不喜欢这个解决方案。

我认为存在另一种解决方案,因为GCM非常相似,除broadcastreceiver

之外不需要任何其他内容

我添加了一个小图:

enter image description here

是否存在仅将广播发送到特定应用程序而不定义类的可能性?

GCM如何做到这一点?

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您关注的是如何让服务安全地将信息发回给客户。

在这种情况下,您可以使用PendingIntent

PendingIntentParcelable,因此客户很容易向服务提供。您的服务可以根据需要跟踪这些内容和send(),并提供其他数据,以便放入由Intent包裹的Intent的{​​{1}}个附加内容中。

不需要导出将响应PendingIntent - 活动,服务或接收者的组件。