因为开机后android默认是在Touch模式,而TV交互需要通过焦点控制,所以我们需要页面一显示,就离开Touch模式。
怎么离开Touch模式呢?
我们知道,当用户开始通过触摸屏与设备交互的时候,设备就进入Touch Mode模式;当用户开始通过键盘与设备交互的时候,设备就退出Touch Mode模式。
也就是说,我们需要IR产生动作,让页面恢复正常,事实也是如此:开机后,页面没有焦点,我们按任意键,焦点马上就出现了。
知道bug产生原因后,我们就需要给出解决方案,上面提到,任意按键,焦点就正常了,但是我们不可能让用户每次开机主界面出来后,按一下遥控键,来修复bug,这种操作对用户来说是不必要的,会影响交互体验,况且这是程序的问题,不能让客户买单。
那怎么办呢?查资料,我们发现,Android可以模拟按键事件,那办法就有了,加载主界面的时候,执行模拟键盘事件。同时,因为一些常用按键都有自己的功能,所以我们选用的按键必须是没有被占用的,这里我选了KeyEvent.KEYCODE_SLASH,这个键值,TV上基本不会用到。
下面贴出代码方案
将模拟按