【Android14】注册广播报错One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a rec...

1:问题现象

在进行Android平台需求移植的过程中,在某一应用中添加了注册广播相关的代码,在编译完成后出现了,应用停止运行或闪退的现象
log问题:根据操作与log日志的观察,发现在点击应用应用停止运行时抛出了报错,如下

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.soundrecorder/com.sprd.soundrecorder.RecorderActivity}:
java.lang.SecurityException: 
com.android.soundrecorder:
One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified
when a receiver isn't being registered exclusively for system broadcasts...

在这里插入图片描述

2:代码检查

根据代码分析到走入下面方法后就没有走出来:
在这里插入图片描述
根据上面log与此处代码判断是注册广播出现了某个问题。

3:分析解决

搜索后知道:
对比Android13,Android14对广播,注册context-registered接收器时需要 指定导出标志

如:
Android13:

 registerReceiver(mReceiver, intentFilter);

Android14:

registerReceiver(mReceiver, intentFilter,Context.RECEIVER_EXPORTED);

即给registerReceiver方法增加第三个参数:

RECEIVER_EXPORTED

或者

RECEIVER_NOT_EXPORTED

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值