android 中全局键的处理GlobalKeyManager
来源:互联网 发布:做菜软件 编辑:程序博客网 时间:2024/06/09 22:01
如何使用快捷键跳转到指定的页面中,在android中的GlobalKeyManager中可以进行相关处理。
frameworks\base\core\res\res\xml\global_keys.xml指定了按键和对应的ComponentName,对于这个文件的修改,一般是使用android的overlay机制,对device进行自己的设置。
如下
<global_keys version="1"> <!-- Example format: keyCode = keycode to handle globally. component = component which will handle this key. --> <key keyCode="183" component="com.test.hotkey/com.test.hotkey.hotkeyActivity" /></global_keys>
看下GlobalKeyManager中对全局键的处理
boolean handleGlobalKey(Context context, int keyCode, KeyEvent event) { if (mKeyMapping.size() > 0) { ComponentName component = mKeyMapping.get(keyCode); if (component != null) { Intent intent = new Intent(Intent.ACTION_GLOBAL_BUTTON) .setComponent(component) .putExtra(Intent.EXTRA_KEY_EVENT, event); context.sendBroadcastAsUser(intent, UserHandle.CURRENT, null); return true; } } return false; }
android原本处理是将其发送广播到指定的ComponentName,
稍作修改,将其改为启动指定的ComponentName的activity即可
private void openApk(ComponentName componentName) { Intent mintent = new Intent(); mintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); mintent.setComponent(componentName); try { mContext.startActivity(mintent); } catch (Exception e) { e.printStackTrace(); } }boolean handleGlobalKey(Context context, int keyCode, KeyEvent event) { if (mKeyMapping.size() > 0) { ComponentName component = mKeyMapping.get(keyCode); if (component != null) { openApk(component); return true; } } return false; }
阅读全文
0 0
- android 中全局键的处理GlobalKeyManager
- android 全局异常的处理 详解
- 详解Android全局异常的捕获处理
- 详解Android全局异常的捕获处理
- Android 全局异常处理
- android处理全局异常
- Android 全局异常处理
- Android全局处理异常
- Android 全局异常处理
- Android 全局异常处理
- Android 全局异常处理
- Android 全局异常处理
- Android 全局异常处理
- Android 全局异常处理
- Android 全局异常处理
- ANDROID全局异常处理
- Android:全局异常处理
- android中共享全局数据的方法
- (九)其它
- 解析XML的四种方法
- 实习生找java web工作时经常碰到培训班怎么破?
- MyBatis+MySQL 返回插入的主键ID
- PAT乙级题1042.字符统计
- android 中全局键的处理GlobalKeyManager
- Java:可变参数列表
- angular2中使用iframe,加载一个被写入的页面
- 添加线程(函数)
- javaWeb初体验
- 源代码文件到二进制可执行文件的过程
- CodeForces 869B The Eternal Immortality
- 欢迎使用CSDN-markdown编辑器
- 【python 数据处理】分组求和、合并