出現(xiàn)了鎖屏界面上使用鼠標(biāo)從底部滑動(dòng)到最上方都不能解鎖開屏幕的現(xiàn)象铺遂。
猜想了相關(guān)對(duì)于MotionEvent
是否會(huì)有鼠標(biāo)和手指的事件處理不一樣所以導(dǎo)致的結(jié)果衫哥,當(dāng)時(shí)從MotionEvent
的api來(lái)看并沒(méi)有不同,沒(méi)有專門對(duì)于鼠標(biāo)事件的處理襟锐,都是走的ACTION_DOWN
撤逢,ACTION_MOVE
,ACTION_UP
捌斧。
然后查看代碼鎖屏界面的的時(shí)間處理流程笛质,NotificationPanelView
是通知界面,它將在鎖屏界面上的處理都是在PanelView
來(lái)處理的捞蚂,查看其onTouchEvent
函數(shù),發(fā)現(xiàn)里面有對(duì)mouse的事件判斷
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
// On expanding, single mouse click expands the panel instead of dragging.
if (isFullyCollapsed() && event.isFromSource(InputDevice.SOURCE_MOUSE)) {
if (event.getAction() == MotionEvent.ACTION_UP) {
expand(true);
}
return true;
}
是由于在這里面會(huì)返回true
而導(dǎo)致鎖屏界面鼠標(biāo)很難解鎖的。取消此段代碼讓其可以繼續(xù)走下面的流程即可跷究。