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廣播 能夠收到java

4.經過adb 發送的android.provision.action.PROVISION_COMPLETE 收不到,Intent添加FLAG(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND = 0x01000000;​)能夠收到android

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------shell

退出登陸
<action android:name="android.accounts.LOGIN_ACCOUNTS_POST_CHANGED" /> 收不到,改成動態註冊app

智能提醒 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也收不到ui

 

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)}進程

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------get

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=0io

手機側收到廣播:
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 }ast

 

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

注:重啓 和 「關機,再開機」的現象同樣

相關文章
相關標籤/搜索