最近在做AndroidTV的一个小app,为了能在电视上看CCTV5【要理解下没有闭路电视的程序员】,想做一个之前那种打开就可以看电视,然后用遥控器上下切换的功能【就是那种卫星电视的感觉】
发现遥控器不好找键值,找了一个小米盒子,天猫魔盒和一个杂牌【看不出什么牌子】电视盒子都能用的代码。感觉他们是一家代工的。就像是电信和移动的电视盒子都是一家代工的【我们家电信移动的电视盒子连电源线都是一起用的,要换一家就是换下盒子,电源线遥控器更别说HDMI线了都是通用的】废话不多说,上代码:
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER: //确定键enter
case KeyEvent.KEYCODE_DPAD_CENTER:
Log.d(TAG,"enter--->");
break;
case KeyEvent.KEYCODE_BACK: //返回键
Log.d(TAG,"back--->");
return true; //这里由于break会退出,所以我们自己要处理掉 不返回上一层
case KeyEvent.KEYCODE_SETTINGS: //设置键
Log.d(TAG,"setting--->");
break;
case KeyEvent.KEYCODE_DPAD_DOWN: //向下键
/* 实际开发中有时候会触发两次,所以要判断一下按下时触发 ,松开按键时不触发
* exp:KeyEvent.ACTION_UP
*/
if (event.getAction() == KeyEvent.ACTION_DOWN){
Log.d(TAG,"down--->");
}
break;
case KeyEvent.KEYCODE_DPAD_UP: //向上键
Log.d(TAG,"up--->");
break;
case KeyEvent.KEYCODE_0: //数字键0
Log.d(TAG,"0--->");
break;
case KeyEvent.KEYCODE_DPAD_LEFT: //向左键
Log.d(TAG,"left--->");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT: //向右键
Log.d(TAG,"right--->");
break;
case KeyEvent.KEYCODE_INFO: //info键
Log.d(TAG,"info--->");
break;
case KeyEvent.KEYCODE_PAGE_DOWN: //向上翻页键
case KeyEvent.KEYCODE_MEDIA_NEXT:
Log.d(TAG,"page down--->");
break;
case KeyEvent.KEYCODE_PAGE_UP: //向下翻页键
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
Log.d(TAG,"page up--->");
break;
case KeyEvent.KEYCODE_VOLUME_UP: //调大声音键
Log.d(TAG,"voice up--->");
break;
case KeyEvent.KEYCODE_VOLUME_DOWN: //降低声音键
Log.d(TAG,"voice down--->");
break;
case KeyEvent.KEYCODE_VOLUME_MUTE: //禁用声音
Log.d(TAG,"voice mute--->");
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
这个我自己都转了几手的代码了,不知道出处了,但是感谢原作者