Android O广播接收情况
target-26
1.卸载和清除收据(这两个在例外广播列表中) 可以收到广播
2.应用商店升级app 收不到android.intent.action.PACKAGE_REPLACED广播,应用自身可以收到android.intent.action.MY_PACKAGE_REPLACED
3.应用被冻结(可使用icebox)时触发android.intent.action.PACKAGE_CHANGED广播 可以收到
4.通过adb 发送的android.provision.action.PROVISION_COMPLETE 收不到,Intent添加FLAG(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND = 0x01000000;)可以收到
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
退出登录
<action android:name="android.accounts.LOGIN_ACCOUNTS_POST_CHANGED" /> 收不到,改为动态注册
智能提醒 com.miui.virtualsim.disable.notification.action 通过setPackage解决
手机重启
<action android:name="android.intent.action.ACTION_SHUTDOWN" /> 可以收到
<action android:name="com.miui.mimobile.action.CHECKT_MODEM_STATE"/> 指定receiver的,应该可以收到
<action android:name="android.provision.action.PROVISION_COMPLETE" /> 待验证
<action android:name="miui.intent.action.FINISH_BOOTING"/> 收不到 改为 android.intent.action.BOOT_COMPLETED也收不到
android.intent.action.SIM_STATE_CHANGED 可以收到
但启动Service失败,如下:
java.lang.RuntimeException: Unable to start receiver com.miui.virtualsim.receiver.SimStateChangeReceiver: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.miui.virtualsim/.service.AuthQcUIMService (has extras) }: app is in background uid UidRecord{a1d328a u0a137 RCVR idle change:uncached procs:1 seq(0,0,0)}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
target为25时
终端发广播:
adb shell am broadcast -a android.provision.action.PROVISION_COMPLETE
Broadcasting: Intent { act=android.provision.action.PROVISION_COMPLETE flg=0x400000 }
Broadcast completed: result=0
手机侧收到广播:
12-21 14:37:08.363 13791-13791/? I/VSC-VsimCoreApp: attachBaseContext
12-21 14:37:08.380 13791-13791/? I/VSC-ProvisionReceiver: onReceive Intent { act=android.provision.action.PROVISION_COMPLETE flg=0x400010 cmp=com.miui.vsimcore/.ProvisionReceiver }
target为26时
终端发广播:
adb shell am broadcast -a android.provision.action.PROVISION_COMPLETE
Broadcasting: Intent { act=android.provision.action.PROVISION_COMPLETE flg=0x400000 }
Broadcast completed: result=0
手机侧未收到广播
终端发广播,添加flag:
adb shell am broadcast -a android.provision.action.PROVISION_COMPLETE -f 0x01000000
Broadcasting: Intent { act=android.provision.action.PROVISION_COMPLETE flg=0x1400000 }
Broadcast completed: result=0
手机侧收到广播:
12-21 15:05:17.633 7125-7125/com.miui.vsimcore I/VSC-VsimCoreApp: attachBaseContext
12-21 15:05:17.709 7125-7125/com.miui.vsimcore I/VSC-ProvisionReceiver: onReceive Intent { act=android.provision.action.PROVISION_COMPLETE flg=0x1400010 cmp=com.miui.vsimcore/.ProvisionReceiver }
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
target-25
1.卸载和清除收据 可以收到广播
2.应用商店升级可以收到android.intent.action.PACKAGE_REPLACED广播
3.应用被冻结(可使用icebox)时触发android.intent.action.PACKAGE_CHANGED广播 可以收到
4.通过adb 发送的android.provision.action.PROVISION_COMPLETE 可以收到
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
关机广播:android.intent.action.ACTION_SHUTDOWN 手机启动完成广播:miui.intent.action.FINISH_BOOTING
app自启动权限均打开
ROM:addFlags(0x01000000) app:targetSDK 26
(1)app进程(com.miui.virtualsim)处于使用状态,重启手机;关机和启动完成广播均可收到
(2)app进程(com.miui.virtualsim)处于被杀死状态,重启手机;关机和启动完成广播均收不到
ROM:addFlags(0x01000000) app:targetSDK 24
(1)app进程(com.miui.virtualsim)处于使用状态,重启手机;关机和启动完成广播均可收到
(2)app进程(com.miui.virtualsim)处于被杀死状态,重启手机;关机和启动完成广播均收不到
若虚卡使用中进程(com.miui.virtualsim)被杀死,在重启手机,关机前进程会(收到广播或其他原因)又启动,所以重启完成后,可以收到启动完成广播。所以以上的测试(2)情形可以忽略
------------------------------------------------------------------------------------------------------------------------------------------------------------------
ROM:未addFlags(0x01000000) app:targetSDK 24 D2S Android8.1
(1)app进程(com.miui.virtualsim)处于使用状态(全球上网未使用),重启手机;关机广播可以收到,启动完成广播收不到。启动后过10s左右可以收到SIM_STATE_CHANGED广播
全球上网使用时,重启手机时虚卡会重启
(2)app进程(com.miui.virtualsim)处于被杀死状态,重启手机;关机和启动完成广播均收不到。启动后过10s左右可以收到SIM_STATE_CHANGED广播
ROM:未addFlags(0x01000000) app:targetSDK 24 E7 Android8.1
(1)app进程(com.miui.virtualsim)处于使用状态(一元流量使用中),重启手机;SIM_STATE_CHANGED、关机和启动完成广播均可收到。虚卡会重启
(2)app进程(com.miui.virtualsim)处于被杀死状态,重启手机;SIM_STATE_CHANGED可以收到。关机和启动完成广播均收不到。
注收到的两个SIM_STATE_CHANGED广播:
10-12 17:49:14.304 5283-5283/? I/VS-SimStateChange: receives SIM_STATE_CHANGED broadcast, state = ABSENT, slotId = 0
10-12 17:49:14.309 5283-5283/? I/VS-SimStateChange: receives SIM_STATE_CHANGED broadcast, state = ABSENT, slotId = 1
注:重启 和 “关机,再开机”的现象一样
Android O广播接收情况的更多相关文章
- Android -- 简单广播接收与发送(2)--动态注册广播接收器
1. 效果图
- Android -- 简单广播接收与发送(1)
1. 效果图
- android 使用广播 接收和拦截 android系统短信
package com.app.sms_broadcastreceiver; import android.app.Activity; import android.content.Broadcast ...
- android中广播接收SD卡状态
mReceiver = new BroadcastReceiver() { //add by mengmeng.chen begin public void onReceive(Context con ...
- Android 短信广播接收相关问题
本人是Android新手,最近做了一个关于监听手机短信功能的应用,我在网上看资料了解到广播分为有序广播和无序广播,有序广播:无序广播又称普通广播,其中的利弊我也一时没搞清楚,我用的是有序广播实现的,具 ...
- android应用无法接收到广播?
本篇文章记录Android应用无法接收到广播的几种case 1. 没有register 广播其实是一种订阅者模式,所以当然需要先register,register的方式有两种 1.1 through ...
- android中的广播接收实现总结
1 首先根据广播应用内接收和应用外接收,分两个类进行管理[1] LocalBroadcastManager,应用内广播管理类[2] BroadcastManager 广播管理类(部分应用内,应用 ...
- [android] 手机卫士接收打电话广播显示号码归属地
使用广播接收者接收打电话的意图,显示号码归属地 新建一个类OutCallReceiver继承系统的BroadcastReceiver 重写onReceive()方法 调用getResultData() ...
- Android 静态广播和动态广播接收顺序
Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播 - 被广播接收器接收后,可被终止,无法往下继续传达. 典型代表:短信广播 普通广播 - 发送至每一 ...
随机推荐
- C# web项目利用docx文档作为模板~为打印专做的解决方案
还是那句话:十年河东,十年河西,莫欺少年穷. 目前,web端打印技术有很多,有收费的专业web打印控件,大家可以参考我的上一篇博客.当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印. w ...
- 基于nodejs的流水线式的CRUD服务。依赖注入可以支持插件。
写代码好多年了,发现大家的思路都是写代码.写代码.写代码,还弄了个称号——码农. 我是挺无语的,我的思路是——不写代码.不写代码.不写代码! 无聊的代码为啥要重复写呢?甚至一写写好几年. 举个例子吧, ...
- 将WTL应用向导添加到VS2019
WTL 简介 WTL 全称是 Windows Template Library,像 MFC 一样使用 C++ 的面向对象技术对 Win32 接口进行了封装,使之便于开发 Windows 程序.相对于 ...
- Angular 基本内置服务和筛选器
AngularJS中的内置服务(共30多个): $http 发送http请求,主要用于进行异步数据请求的功能实现,这个服务主要封装了XMLHttpRequest对象和JSONP数据访问模式来完成远程请 ...
- elk部署之前注意事项
注意事项: 1.不能使用root用户登录,需要是用root 之外的用户登录到系统. 2.centos系统 运行内存不能小于2G,若低于2G需要修改jvm. vi {jvm_home}/config/ ...
- knnsearch
转载:https://blog.csdn.net/bushixiaofan/article/details/27700299 K近邻算法是找到K个最近的邻居. IDX = knnsearch(X,Y) ...
- 标准3层神经网络搭建Demo
上面我们说了神经网络的基础知识,根据上章的基础尝试搭建一个标准的3层神经网络,参考https://www.cnblogs.com/bestExpert/p/9128645.html 1.框架代码 1. ...
- BZOJ 2730 矿场搭建
割点 割点以外的点坍塌不影响其他人逃生,因为假设我们任取两个个非割点s建立救援站,非割点的任意点坍塌,我们都可以从割点走到一个救援出口. 所以我们只考虑割点坍塌的情况. 我们可以先找出图中所有的割点. ...
- abp添加动态菜单
abp中MenuDefinition封装了导航栏上的主菜单的属性,MenuItemDefinition则封装了子菜单的属性,子菜单可以引用其他子菜单构成一个菜单树. MenuDefinitio成员如下 ...
- CPU监控
题目描述 Bob需要一个程序来监视CPU使用率.这是一个很繁琐的过程,为了让问题更加简单,Bob会慢慢列出今天会在用计算机时做什么事. Bob会干很多事,除了跑暴力程序看视频之外,还会做出去玩玩和用鼠 ...