关于Android广播接收器无法接收自定义广播消息

我碰到这个问题的时候去搜,找到的是因为安卓版本过高,系统比较严格,因此发送广播的时候需要多点步骤,但是在看书的过程中,又发现好像这个还分动态注册和静态注册。其实差别只是多一行少一行的事,下面分别说说,PS.我的avd是Android 28。

静态注册

如果是在AndroidManifest.xml中注册的接收器,在发送的时候需要多调用一个setComponent()方法,其中第一个参数是包名,第二个参数是接收器的类名。

...
Intent intent=new Intent("com.example.k.androidpractice_1.MY_BROADCAST");
intent.setComponent(
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Android跨app广播接收器是指在Android系统中,一个应用程序可以发送广播,而另一个应用程序可以注册并接收广播。 实现跨app广播接收器需要以下步骤: 1. 发送广播:在发送广播的应用程序中,需要创建一个Intent对象,并使用setAction()方法为其设置一个自定义的Action,用于标识该广播。然后,使用sendBroadcast()方法发送该广播。例如: ```java Intent intent = new Intent(); intent.setAction("com.example.MY_CUSTOM_ACTION"); sendBroadcast(intent); ``` 2. 注册接收器:在接收广播的应用程序中,需要创建一个BroadcastReceiver对象,并使用IntentFilter对象来过滤想要接收广播。然后,使用registerReceiver()方法注册该广播接收器。例如: ```java BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // 处理接收到的广播 } }; IntentFilter filter = new IntentFilter(); filter.addAction("com.example.MY_CUSTOM_ACTION"); registerReceiver(receiver, filter); ``` 在注册广播接收器时,需要注意在AndroidManifest.xml文件中声明接收器的权限,以便允许不同应用程序之间的广播通信。 需要注意的是,发送广播接收广播的应用程序应该在同一个设备上安装和运行,并且具有相应的权限。否则,跨app广播接收器可能无法正常工作。 总之,跨app广播接收器Android为了实现不同应用程序之间的通信而提供的一种机制,使应用程序能够发送广播并让其他应用程序接收并处理该广播

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值