正常情况下,双屏异显与同屏显示一样,遥控事件都只会传递到主屏类(Activity)。在有些使用场景中,副屛(例如KTV中主屏为触摸屏,副屛为电视机)也有通过遥控器交互操作的需求,那在副屛中改如何接收并响应遥控事件呢?
这里提供一个方法:
拦截主屏的事件分发流程,改由副屛自己去分发处理。
1.在Activity中进行拦截按键事件的分发
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (null != mPresentation) {
//当副屛启用时,直接通过副屛来分发按键事件
return (mPresentation.dispatchKeyEvent(event));
}
return (super.dispatchKeyEvent(event));
}2.在副屛中监听按键。
PresentationNew extends Presentation {
....
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (KeyEvent.KEYCODE_VOLUME_UP == keyCode) {
//TODO 响应操作
...
return true;
}
}
}经过步骤1后,系统遥控焦点边框、点击事件触发等就都与主屏中一样由系统自动处理即可,不用额外逻辑。
版权声明:本文为HuanWen_Cheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。