android阻止广播发送,android 去掉广播发送警告

系统应用在发送广播时,可能会出现类似的 log 提示,

01-01 08:06:09.150 2359 3052 E ActivityManager: Sending non-protected broadcast android.intent.action.TEST_ACTION from system 3094:xxx.yyy.zzz/1000 pkg xxx.yyy.zzz

01-01 08:06:09.150 2359 3052 E ActivityManager: java.lang.Throwable

01-01 08:06:09.150 2359 3052 E ActivityManager: at com.android.server.am.ActivityManagerService.checkBroadcastFromSystem(ActivityManagerService.java:19037)

01-01 08:06:09.150 2359 3052 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:19642)

01-01 08:06:09.150 2359 3052 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:19784)

01-01 08:06:09.150 2359 3052 E ActivityManager: at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:240)

01-01 08:06:09.150 2359 3052 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2970)

01-01 08:06:09.150 2359 3052 E ActivityManager: at android.os.Binder.execTransact(Binder.java:674)

虽然出现这个 log ,但作为系统应用,是可以正常发送广播的,功能没问题。

看到 E 级 log ,看着不顺,想着去掉。

基于 AN 8.0 ,如果发送广播的地方在 frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 中,

可以这样修改,在 frameworks/base/core/res/AndroidManifest.xml 中对发送的广播添加声明,

添加这个修改后,这个广播就是系统级的了;

如果第三方app发送这个广播,就会报错,

MessageQueue-JNI: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.TEST_ACTION from pid=6894, uid=10050

相当于做了一层保护,防止第三方app发送系统广播,防止系统原有逻辑被破坏。

系统app则可以继续发送这个广播。

本文地址:https://blog.csdn.net/weixin_44021334/article/details/108168923

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值