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广播接收情况的更多相关文章

  1. Android -- 简单广播接收与发送(2)--动态注册广播接收器

    1. 效果图

  2. Android -- 简单广播接收与发送(1)

    1. 效果图

  3. android 使用广播 接收和拦截 android系统短信

    package com.app.sms_broadcastreceiver; import android.app.Activity; import android.content.Broadcast ...

  4. android中广播接收SD卡状态

    mReceiver = new BroadcastReceiver() { //add by mengmeng.chen begin public void onReceive(Context con ...

  5. Android 短信广播接收相关问题

    本人是Android新手,最近做了一个关于监听手机短信功能的应用,我在网上看资料了解到广播分为有序广播和无序广播,有序广播:无序广播又称普通广播,其中的利弊我也一时没搞清楚,我用的是有序广播实现的,具 ...

  6. android应用无法接收到广播?

    本篇文章记录Android应用无法接收到广播的几种case 1. 没有register 广播其实是一种订阅者模式,所以当然需要先register,register的方式有两种 1.1  through ...

  7. android中的广播接收实现总结

    1 首先根据广播应用内接收和应用外接收,分两个类进行管理[1]  LocalBroadcastManager,应用内广播管理类[2]  BroadcastManager  广播管理类(部分应用内,应用 ...

  8. [android] 手机卫士接收打电话广播显示号码归属地

    使用广播接收者接收打电话的意图,显示号码归属地 新建一个类OutCallReceiver继承系统的BroadcastReceiver 重写onReceive()方法 调用getResultData() ...

  9. Android 静态广播和动态广播接收顺序

    Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一 ...

随机推荐

  1. ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler)

    本文通过一张图来看一下路由的配置以及请求处理的机制.(ASP.NET Core 系列目录) 一.概述 路由主要有两个主要功能: 将请求的URL与已定义的路由进行匹配,找到该URL对应的处理程序并传入该 ...

  2. node-portfinder

    nstallation   $ [sudo] npm install portfinder   Usage var portfinder = require('portfinder'); portfi ...

  3. Python----Kernel SVM

    什么是kernel Kernel的其实就是将向量feature转换与点积运算合并后的运算,如下, 概念上很简单,但是并不是所有的feature转换函数都有kernel的特性. 常见kernel 常见k ...

  4. c#枚举位运算操作

    抛出预设问题 需要有一个npc需要在一周中的,周一,周二,周三会出现,其他时间不可见 解决问题 因为一周时间是固定的,所以创建枚举类型比较合适,如下 enum Days { None, Sunday, ...

  5. Spring 完成自动注入(autowire)

    目录 两个测试类 普通方式手动注入 普通方式注入的缺点 自动注入的介绍 配置自动注入的方式 配置全局自动注入 局部单独配置 利用注解实现自动注入 两个测试类 package cn.ganlixin.p ...

  6. 【问题解决方案】pygame生成的窗口点右上角关闭按钮未响应问题的解决

    pygame生成的窗口点右上角关闭按钮未响应问题的解决: 可在 sys.exit() 前面加上 pygame.quit()

  7. codeforces 796A-D

    决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...

  8. Android 1.7 中不支持 lambda 表达式

    Error:(129, 32) 错误: -source 1.7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式) lambda expressio ...

  9. Vue接口异常时处理

    一般接口只会对后台返回的json状态进行判断处理,当后台异常时,我们可以使用catch来对这些异常进行同样的报错处理. 例如: 上面显示代码例子中test为一个接口,json为后台正常返回的数据对象, ...

  10. layui——Cannot create property 'LAY_TABLE_INDEX' on number '1'

    前言 用layui写的后台,PHP处理好数据传输过来的时候报错了,最后发现是数据处理成layui格式的时候出错了,直接传了json对象过来,layui需要的是一个json的数. 解决 外面套成数组即可 ...