使用聲網(wǎng)進行的視頻聊天廓推,但是vivo手機在鎖屏的情況下彈不出來視頻來電界面,點HOME鍵退到后臺時可以彈出來點界面翩隧;然而OPPO手機在鎖屏和后臺兩種情況下都彈不出來電界面樊展,經(jīng)過多次測試發(fā)現(xiàn)vivo手機和OPPO不彈來電界面還不相同,需要分別處理堆生。
首先判斷此應(yīng)用和手機所處狀態(tài):a應(yīng)用在前臺专缠;b應(yīng)用在后臺;c應(yīng)用被殺死淑仆;d手機解鎖狀態(tài)涝婉,e手機鎖屏狀態(tài),f手機亮屏狀態(tài)(鎖屏)
vivo的處理方式:
vivo在鎖屏的情況下來電時回亮屏幕并彈出這個權(quán)限提醒蔗怠,在不動這個權(quán)限的情況下墩弯,如何彈出來電界面呢?
1.獲取狀態(tài)
然后來電時根據(jù)狀態(tài)做不同處理:
2.vivo在鎖屏下蟀淮,VideoInviteActivity進入后立刻調(diào)Destroy最住,所以我判斷用戶在非前臺且鎖屏的情況下將來電用戶信息傳給MainActivity,在MainActivity中做處理。此時開始響鈴Util.playMp3();
3.在圖B中判斷何時解鎖怠惶,解鎖后,發(fā)送消息給MainActivity轧粟,然后根據(jù)傳的來電信息再次彈出VideoInviteActivity策治。
OPPO的來電處理:
oppo來電在后臺和鎖屏兩張情況下都不彈出來電界面兰吟,進過很多次測試進入VideoInviteActivity后立馬出來通惫,好像連生命周期都沒有走,不知道什么原因混蔼。它的處理相對復(fù)雜一點履腋。
首先同上一樣發(fā)送來電消息給MainActivity:首先判斷應(yīng)用的最前面的界面時Launcher界面也就是桌面,鎖屏情況下顯示也是Launcher。
之后在MainActivity下處理:處理方式就是多次輪訓(xùn)進入VideoInviteActivity遵湖,根據(jù)最前進程是否時VideoInviteActivity停止輪訓(xùn)悔政。