android8.0很多广播不能静态注册接受

查看log显示 Background execution not allowed: receiving

查看代码frameworks/base/services/core/java/com/android/server/am/BroadcastQueue.java

if (!skip) {

final int allowed = mService.getAppStartModeLocked(

info.activityInfo.applicationInfo.uid, info.activityInfo.packageName,

info.activityInfo.applicationInfo.targetSdkVersion, -1, true, false);

if (allowed != ActivityManager.APP_START_MODE_NORMAL) {

// We won't allow this receiver to be launched if the app has been

// completely disabled from launches, or it was not explicitly sent

// to it and the app is in a state that should not receive it

// (depending on how getAppStartModeLocked has determined that).

if (allowed == ActivityManager.APP_START_MODE_DISABLED) {

Slog.w(TAG, "Background execution disabled: receiving "

+ r.intent + " to "

+ component.flattenToShortString());

skip = true;

} else if (((r.intent.getFlags()&Intent.FLAG_RECEIVER_EXCLUDE_BACKGROUND) != 0)

|| (r.intent.getComponent() == null

&& r.intent.getPackage() == null

&& ((r.intent.getFlags()

& Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND) == 0)

&& !isSignaturePerm(r.requiredPermissions))) {

mService.addBackgroundCheckViolationLocked(r.intent.getAction(),

component.getPackageName());

Slog.w(TAG, "Background execution not allowed: receiving "

+ r.intent + " to "

+ component.flattenToShortString());

skip = true;

}

}

}

所以我们要发送能静态注册接受的广播可以设置ComponentName,PackageName,或者设置FLAG_RECEIVER_INCLUDE_BACKGROUND 这个标志位

设置ComponentName,PackageName就只有指定的应用能接受这个广播,

/**

*

* @hide

*/

public static final int FLAG_RECEIVER_INCLUDE_BACKGROUND = 0x01000000;

这个FLAG是hide的,所以我们能设置intent.addFlags(0x01000000);去让广播能静态注册接受.

android8显示广播,关于android8.0静态接收广播相关推荐

  1. 安卓8.0静态注册广播不能用的问题

    今天试了下静态注册广播,但是发现接收不到广播 解决方案如下: 在intent里面加   component("广播接收者的包名","广播接收者路径") 这样就能 ...

  2. android 无法接收广播_别告诉我你不认识Android中广播接收者(二)

    前面我们了解了什么是广播接收者与广播接收者的创建,这一次我们要接着继续去了解广播接收者的相关知识,这些知识包括广播接收者的注册.自定义广播与广播的类型. 当我们学习完广播接收者之后,该如何才能让它起到 ...

  3. 为什么 Android 8.0 注册的广播接收不到了?

    本文首发微信公众号:菜天Android 忙啊-最近好忙呀. 这篇文章偷个闲,记录下 Android8.0 上的新增的广播限制. 零.前言 最近在基于 Android 8.1 的系统项目中有用到静态注册 ...

  4. Android安全问题 抢先接收广播 - 内因篇之广播接收器注册流程

    导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对我前两篇文章 android安全问题  抢先开机启动 - 结果篇 android安全问题  抢先拦截短信 ...

  5. android 发送广播_从0系统学Android--5.2 发送广播

    从0系统学Android--52 发送广播 本系列文章目录:更多精品文章分类 本系列持续更新中-. 初级阶段内容参考<第一行代码> 5.3 发送自定义广播 前面已经学习了如何接受广播了,下 ...

  6. Android 7.0 ActivityManagerService(5) 广播(Broadcast)相关流程分析

    本篇博客旨在分析Android中广播相关的源码流程. 一.基础知识 广播(Broadcast)是一种Android组件间的通信方式. 从本质上来看,广播信息的载体是intent.在这种通信机制下,发送 ...

  7. Android 7.0 隐式广播-监听网络变化

    Android7.0前,Android系统前网络切换时,会发广播,业务只要监听广播即可. public class NetChangeReceiver extends BroadcastReceive ...

  8. 遇到一个在linux下无法跨网段发送接收广播包的问题

    正在进行的项目中有个网络广播包搜索设备的模块,需要在上位机发送搜索设备的XML命令,然后设备端再发真正的搜索广播包到交换机上所有的连接设备.测试部反馈了一个bug:无法跨网段搜索到设备,同一个网段内, ...

  9. 安卓intent发起广播事件给系统或当前app,并从系统或当前app中接收广播

    全栈工程师开发手册 (作者:栾鹏) python教程全解 定义广播接收器 这里定义了一个广播接收一个系统屏幕选装的广播事件和一个自定义事件 import android.content.Intent; ...

最新文章

  1. 自带数据线的迷你数显充电宝,旅途必备
  2. 性能指标:QPS、TPS、RT、吞吐量
  3. 《白话法律42讲》读后感
  4. Active MQ 双主 和 mysql双主 方案测试
  5. python复杂网络 学习笔记
  6. {dede:list}和{dede:arclist}的区别
  7. Verilog功能模块 —— 按键消抖
  8. OpenGL中的投影使用
  9. iframe中加载html页面,jQuery - 动态创建iframe并加载页面
  10. 我工作第五年的学习与读书之法
  11. matlab页面背景颜色改变为黑底白字
  12. 快速排序 C语言代码 空间复杂度时间复杂度
  13. 理论综述与创新---结构洞的新应用
  14. Win10自带浏览器MicroEdge无法打开网页---解决办法
  15. 通过MediaRecorder 录制视频的时候,魅族手机录制视频后,大小显示0
  16. vue+echarts+自适应 实现可视化大屏展示效果
  17. 后端开发常见面试题目
  18. LLVM IR 语法
  19. [2021年最新]国产时序性数据TDenige入门
  20. [转载]我如何在计算机视觉顶级会议CVPR上发表论文?

热门文章

  1. 你动、蒙娜丽莎跟着一起动,OpenCV这么用,表情口型造假更难防了
  2. 分分钟甩Word几条街,Python编辑公式竟可以如此简单
  3. Adam 那么棒,为什么还对 SGD 念念不忘?一个框架看懂深度学习优化算法
  4. 7 Papers Radios | GCN大佬公开博士论文;谷歌提出扩展型BERT架构
  5. 超越99.9%人类玩家,微软专业十段麻将AI论文细节首次公布
  6. 干货 | 目标检测技巧大汇总(含代码与解读)
  7. 程序猿才感同身受的10个图!
  8. 管理员信息管理之删除管理员信息数据
  9. SPU表管理之查询获取SPU表列表数据
  10. Linux之远程登录、远程拷贝命令 ssh scp