Android实现组合键监听功能
来源:互联网 发布:sony手机知乎 编辑:程序博客网 时间:2024/04/28 05:40
昨天接到一个任务,要做一下组合键长按监听事件。
由于Android设备是自家的,有点搓,系统代码根本没有区分长按和短按功能。
只能应用层通过diapatchKeyEvent函数实现。
话不多说,代码如下,
@Override public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); int action = event.getAction(); if (keyCode == KeyEvent.KEYCODE_BACK && action == KeyEvent.ACTION_DOWN) { mBackKeyAction = KeyEvent.ACTION_DOWN; //记录按下状态 if(mActionTime == 0 ) { mActionTime = System.currentTimeMillis(); } } if (keyCode == KeyEvent.KEYCODE_BACK && action == KeyEvent.ACTION_UP) { mBackKeyAction = KeyEvent.ACTION_UP; //记录松下状态 mActionTime = 0; } if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && event.getAction() == KeyEvent.ACTION_DOWN) { mOkKeyAction = KeyEvent.ACTION_DOWN; //记录按下状态 if(mActionTime == 0 ) { mActionTime = System.currentTimeMillis(); } } if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER && event.getAction() == KeyEvent.ACTION_UP) { mOkKeyAction = KeyEvent.ACTION_UP; //记录松下状态 mActionTime = 0; } //长按,且Back键和OK键没松 if (isLongPress() && mBackKeyAction == KeyEvent.ACTION_DOWN && mOkKeyAction == KeyEvent.ACTION_DOWN) { //do something } return super.dispatchKeyEvent(event); } private boolean isLongPress() { if (System.currentTimeMillis() - mActionTime > 3000) { return true; } else { return false; } }
0 0
- Android实现组合键监听功能
- Android实现组合键监听功能
- Flex的组合键监听功能实现
- Android监听组合键
- Android监听组合键
- Android监听组合键
- [Android]在Android TV中实现组合按键的监听触发功能
- Android 实现通话监听功能
- JS实现键盘监听(包括组合键)
- JS实现键盘监听(包括组合键)
- JS实现键盘监听(包括组合键)
- javascript实现组合键功能
- android来电监听功能的实现
- Qt实现监听功能
- android 监听上下左右键的功能实现
- Android实现通话呼叫转移与监听通话录音功能
- 探讨Android实现后台(Service)按键监听的功能
- Android中短信监听的各种问题,实现监听短信的功能
- 覆盖你 80 % 网络生活的,竟是这样一家神秘实验室
- 【UML】构件图Component diagram(实现图)
- Terminal开启自动补全功能
- ETL开源工具kettle的基本使用
- leetcode_30 Next Permutation
- Android实现组合键监听功能
- 填坑之路 MVC5 新闻发布系统
- Hibernate多对多级联删除的问题
- linux 实验1
- CamanJS 学习笔记
- 请求转发和重定向
- MySQL SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown table engine 'InnoDB' 错误的原因及解决
- [iOS开发项目-10] 图片轮播器
- C# : SciTE 配置 cs 编译选项