机顶盒项目--遥控器组合键的实现
一般在机顶盒的开发中,难免会出组合键的情况,那怎么实现呢:
首先写一个组合键接受的监听类:
public class BackDoorDetector {public BackDoorDetector(int []keys, BackDoorKeysListener listener){this(keys,listener,2000);}public BackDoorDetector(int []keys, BackDoorKeysListener listener, int interval){m_key_code = keys;m_listener = listener;m_press_key_interval = interval;}public interface BackDoorKeysListener {void onMatch();}int m_key_code[] = null;int m_press_key_cnt = 0;long m_press_key_timepre = 0;long m_press_key_interval = 2000;BackDoorKeysListener m_listener = null;public boolean onKeyEvent(int event){boolean ret = false;long press_key_time = System.currentTimeMillis();Log.d("MainActivity", "dispatchKeyEvent: "+event + " index="+m_press_key_cnt+" time=" + press_key_time);if(m_press_key_cnt > 0 && press_key_time - m_press_key_timepre > m_press_key_interval){m_press_key_cnt = 0;m_press_key_timepre = 0;return ret;}if( event == m_key_code[m_press_key_cnt] ){(m_press_key_cnt)++;if( m_press_key_cnt == m_key_code.length){ret = true;m_press_key_timepre = 0;m_press_key_cnt = 0;if(m_listener != null)m_listener.onMatch();}else{m_press_key_timepre = press_key_time;}}else{m_press_key_cnt = 0;m_press_key_timepre = 0;}return ret;}
}
然后在dispatchKeyEvent这个方法里面实例化这个类:
private BackDoorDetector detector = new BackDoorDetector(new int[]{KeyEvent.KEYCODE_2, KeyEvent.KEYCODE_5,KeyEvent.KEYCODE_8,KeyEvent.KEYCODE_9},new BackDoorDetector.BackDoorKeysListener() {@Overridepublic void onMatch() {//这里就是按完组合键之后的回调方法Log.i(BackingMachineService.TAG, "====>>BackDoorDetector");}}});
@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {//将实例化后的类让此方法来接受事件detector.onKeyEvent(event.getKeyCode());return super.dispatchKeyEvent(event);}
这样的话就实现了按组合键实现一些功能的操作了!
机顶盒项目--遥控器组合键的实现相关推荐
- Android 遥控器组合键的处理
最近在做遥控器开发中,需要处理两个按键一起按时的组合键的处理,下面做个笔记 1.定义组合键处理类 import android.content.Context; import android.util ...
- Android:TV设置遥控器组合键
这个其实很简单,就是获取用户的按键操作,按一次,我放到ArrayList,点击菜单的时候,我比对一下顺序是否正确 以下组合键顺序,上 --> 下 --> 左 --> 右 ...
- react 监听组合键_投资组合中需要的5个React项目
react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...
- Android开发:教你开发TVBox应用时使用遥控器组合快捷键
当我们在开发Android机顶盒,也就是TVBox应用的时候,我们可能会需要隐藏某个功能,或者隐藏某个应用,通过遥控器上按动组合快捷键来打开隐藏的功能或者应用.打个比方,可能"工厂测试Fac ...
- windows命令大全_必收藏!电脑快捷键、组合键大全
键盘快捷键使用大全所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的.下面为大家介绍一些常用快捷键的使用和功能.希望这些电脑快捷键大全可以给用户带来便捷的上网体 ...
- 这是高手最常用的第一快捷组合键 - imsoft.cnblogs
1.锁定电脑 2.要找电脑上的文件时,一般人会先找到"我的电脑",然后点击打开,而高手总是很酷的,轻轻按下键盘上的Windows键不放然后再按E键,直接打开电脑的资源管理器,而一般 ...
- 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,建议收藏
点击上面"蓝字"关注人民书写 键盘是最常用的输入设备,通过键盘可以将汉字.英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据.那么键盘分为几个功能区?各键的功 ...
- windows快捷键+组合键+搜索命令
大佬不用鼠标飞速的操控着计算机 心里羡慕嫉妒又捉急,静下心来看一看 原来也就这样办: 这次狠下心整理了网上及日常使用率较高的 快捷键 和 组合键 ,供大家参考: 电 ...
- 中英文标点符号切换的组合键_最全的键盘各键及组合键功能说明,好好学习
键盘是最常用的输入设备,通过键盘可以将汉字.英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据.那么键盘分为几个功能区?各键的功能是什么呢?组合键又有什么功能呢?下面就分别予以说 ...
最新文章
- 在Android中取得当前进程名
- andriod sdk哪些是必须下载安装的包
- ubuntu之Unable to lock the administration directory(/var/lib/dpkg/), are you root?13 Permission denie
- ajax php 观察者模式,JavaScript观察者模式定义和dom事件实例详解
- webpack+vue-cli 中proxyTable配置接口地址代理
- 阿里云面向制造业推出防疫复工数字化方案 复工效率提升50%以上
- 用PD进行数据库建模经验总结
- RobotStudio碰撞检测的设定
- C#调用新浪微博API生成RSS资源文件
- sqluldr2支持mysql吗_sqluldr2工具使用方法
- centos 5.6 x86 安装 文泉驿字体
- HTML实现分页功能
- 企业CIS 系统的收集方法分析
- html ol标签用罗马数字,HTML重点标签总结
- 沧小海笔记之PCIE协议解析——第三章 PCIE的数据链路层
- php $_SERVER 学习详解
- 禁止电脑开机自动打开浏览器
- flutter引入高德地图_flutter配置高德地图SDK
- Kubernetes中RBAC实战一 servicecount 10月2日实验笔记
- apple开发者文档关于KVC和KVO文档的一些渣翻——这里是原地址
热门文章
- html超链接 新弹出窗口 和字体颜色
- FPGA Vivado XDC 约束文件编写方式语法笔记
- 工业机器人(六)——运动学分析
- 前端代码规范速成 prettier - code formatter
- python之 ffmpeg+opencv绿幕抠图,蒙版绿幕抠图,透明化处理,PIL检测图片是否包含透明通道
- adobe pdf 启用下划线快捷键
- python态密度曲线绘制_使用Multiwfn绘制态密度(DOS)图考察电子结构
- 刷机后连接上wifi提示网络访问受限时间不同步问题解决方法小米8刷魔趣WIFI无法联网解决方法
- call、ret、retf 指令详解
- 结构性过剩不改 钢铁业去产能持续推进