[QCM6125][Android13] 解决应用调用静态广播无法接收到的问题

开发平台基本信息

芯片: QCM6125
版本: Android 13
kernel: msm-4.14

问题描述

祖传的系统升级服务,还是用的静态广播注册,但是,在Android8.1之后,应用向静态注册的广播发送广播,系统是无法接收到的,要么就是改为动态注册广播,要么就是使用setComponent参数。但是呢,既不想去动祖传代码,又不想让应用做做多余的操作;所以,就只能动系统,去掉静态广播无法收到的限制。

解决方法

--- a/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -13608,7 +13608,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                 || TelephonyManager.ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE.equals(action)
                 || SuggestionSpan.ACTION_SUGGESTION_PICKED.equals(action)
                 || AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION.equals(action)
-                || AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION.equals(action)) {
+                || AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION.equals(action)
+                || true) {
             // Broadcast is either protected, or it's a public action that
             // we've relaxed, so it's fine for system internals to send.
             return;

--- a/frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -1788,7 +1788,7 @@ public final class BroadcastQueue {
                     Slog.w(TAG, "Background execution not allowed: receiving "
                             + r.intent + " to "
                             + component.flattenToShortString());
-                    skip = true;
+                    skip = false;
                 }
             }
         }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值