zoukankan      html  css  js  c++  java
  • 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

    注:重启 和 “关机,再开机”的现象一样

  • 相关阅读:
    不错的电影(先收藏着)
    getchar() getch() getche() gets() puts() scanf()的用法及区别
    java反射获取字段的属性值,以及为字段赋值等方法
    oracle将查询结果横转纵
    关于MySQL 的LEFT JOIN ON的问题
    MySQL表名和数据库关键字相同解决办法
    ajax 后台正常执行 错误类型却是404
    BIT 树状数组 详解 及 例题
    HDU 2689 Sort it (树状数组)
    HDU Cow Sorting (树状数组)
  • 原文地址:https://www.cnblogs.com/genggeng/p/10565091.html
Copyright © 2011-2022 走看看