原文:http://blog.csdn.net/mingli198611/article/details/17762149
在android系统中sendBroadcast和BroadcastReceiver。只要BroadcastReceiver指定的action和sendBroadcast
action一致就可以就行消息接收。但是我们有这样的需求即我发送的广播不允许所有应用都可以接收广播消息,而是要经过发送者允许的才可以。比如某一个产品簇,每一个产品发送的广播消息只允许本簇内的产品才允许接收消息。其它应用即使action一样,也无法接收消息。这样就大大的提供了产品的安全性。那么如何实现呢?本文主要目的就是于此。
一、只允许本应用内允许接收。
解决方案一:LocalBroadcastManager (局部广播)
优点:
1.因广播数据在本应用范围内传播,你不用担心隐私数据泄露的问题。
2. 不用担心别的应用伪造广播,造成安全隐患。
3. 相比在系统内发送全局广播,它更高效。
缺点:
1. 它只能够在同一个进程使用,如果本应用是多进程的。必须保证发送者和接收者是在同一个进程内。
2. 它只能够动态注册和取消。
使用实例:
先通过LocalBroadcastManager lbm =
LocalBroadcastManager.getInstance(this);获取实例
然后通过函数 registerReceiver来注册监听器
registerReceiver(newBroadcastReceiver() {
@Override
public
void onRec