Android TV键值复用

/

软硬件环境

  • OTT Box 5.1.1
  • Android studio 3.0.1

前言

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

实现

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

  1. @Override
  2. public boolean dispatchKeyEvent(KeyEvent event) {
  3. int keyCode = event.getKeyCode();
  4. int action = event.getAction();
  5. long downTime = event.getDownTime();
  6. long eventTime = event.getEventTime();
  7. int repeat = event.getRepeatCount();
  8. int metaState = event.getMetaState();
  9. switch (keyCode) {
  10. case KeyEvent.KEYCODE_DPAD_RIGHT:
  11. event = new KeyEvent(downTime, eventTime, action, KeyEvent.KEYCODE_VOLUME_UP, repeat, metaState);
  12. break;
  13. case KeyEvent.KEYCODE_DPAD_LEFT:
  14. event = new KeyEvent(downTime, eventTime, action, KeyEvent.KEYCODE_VOLUME_DOWN, repeat, metaState);
  15. break;
  16. }
  17. return super.dispatchKeyEvent(event);
  18. }

转载请注明作者和出处,并添加本页链接。
原文链接: blog.xugaoxiang.com/106

给我留言