徐高翔的个人网站

Android-TV键值复用

2016-05-15

软硬件环境

  • OTT Box 5.1.1
  • Android studio 3.0.1

前言

在做Android TV时经常会碰到遥控器的使用,同一款盒子会同时匹配多款遥控器,而对应遥控器的按键一般是不一样的,有的按键多,有的按键少,如果不巧用的是按键少的遥控器,那键值复用就不可避免了。本文就来实现通过复用左右键来实现音量加减的功能。

实现

通过在dispatchKeyEvent方法中拦截键值,进行重新装配KeyEvent对象,达到键值复用的目的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
int action = event.getAction();
long downTime = event.getDownTime();
long eventTime = event.getEventTime();
int repeat = event.getRepeatCount();
int metaState = event.getMetaState();

switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_RIGHT:
event = new KeyEvent(downTime, eventTime, action, KeyEvent.KEYCODE_VOLUME_UP, repeat, metaState);
break;

case KeyEvent.KEYCODE_DPAD_LEFT:
event = new KeyEvent(downTime, eventTime, action, KeyEvent.KEYCODE_VOLUME_DOWN, repeat, metaState);
break;
}

return super.dispatchKeyEvent(event);
}

本文链接 https://xugaoxiang.com/2016/05/15/Android-TV键值复用/

推荐文章(由hexo文章推荐插件驱动)

使用支付宝打赏
使用微信打赏

请博主喝咖啡!