android 双屏异显场景,如何使副屛Presentation响应遥控操作

正常情况下,双屏异显与同屏显示一样,遥控事件都只会传递到主屏类(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版权协议,转载请附上原文出处链接和本声明。