Android全局键(home键_长按耳机键)详解【android源码解析八】.docVIP

Android全局键(home键_长按耳机键)详解【android源码解析八】.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android全局键(home键_长按耳机键)详解【android源码解析八】

Android全局键(home键_长按耳机键)详解【android源码解析八】 Android的全局键(home键/长按耳机键)详解【android源码解析八】Android的全局键(home键/长按耳机键)详解【android源码解析八】 如果想在Android手机要想扩展一个实体键,就我知道而言有两种方法,基于Android4.0的源码来分析的与2.3的源码有点区别,区别不大,下面分享给大家: 转载请标明出处: (一)可以在frameworks层的KeyEvent.java这个类中定义一个值,在PhoneWindowManager.java这个类中做处理就可以了。(Home键就是这么实现的)。效果图如下: (二)可以利用广播的形式,frameworks层PhoneWindow.java这个类的onKeyDown( )对这个实体键发广播,上层接受这个广播来处理也可以达到这个效果。耳机键就是利用广播来接受的。无论在哪个界面长按耳机键,都会进入到音乐的界面。(长按耳机键的)效果图如下: 下面我详细展开来说明一下: 一、先说Home键的实现的大致流程,即----为什么点击Home键,都进入到launcher的待机界面; (1)Home键的定义在 step1: frameworks/base/core/java/android/view/KeyEvent.java这个类中,在KeyEvent.java这个类中有个static的静态块: static { populateKeycodeSymbolicNames(); } step2: 这个populateKeycodeSymbolicNames()方法其实就是加载了许多键的定义,把这些键对应的值都放到Array数组中。 private static void populateKeycodeSymbolicNames() { SparseArrayString names = KEYCODE_SYMBOLIC_NAMES; names.append(KEYCODE_UNKNOWN, KEYCODE_UNKNOWN); names.append(KEYCODE_SOFT_LEFT, KEYCODE_SOFT_LEFT); names.append(KEYCODE_SOFT_RIGHT, KEYCODE_SOFT_RIGHT); names.append(KEYCODE_HOME, KEYCODE_HOME); names.append(KEYCODE_BACK, KEYCODE_BACK); names.append(KEYCODE_CALL, KEYCODE_CALL); names.append(KEYCODE_ENDCALL, KEYCODE_ENDCALL); names.append(KEYCODE_0, KEYCODE_0); names.append(KEYCODE_1, KEYCODE_1); names.append(KEYCODE_2, KEYCODE_2); names.append(KEYCODE_3, KEYCODE_3); names.append(KEYCODE_4, KEYCODE_4); names.append(KEYCODE_5, KEYCODE_5); names.append(KEYCODE_6, KEYCODE_6); names.append(KEYCODE_7, KEYCODE_7); names.append(KEYCODE_8, KEYCODE_8); names.append(KEYCODE_9, KEYCODE_9); step3: 而Home键对应的值如下: /** Key code constant: Home key. * This key is handled by the framework and is never delivered to applications. */ public static final int KEYCODE_HOME = 3; (2)Home键的处理如下:在 step1: frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java这个类中:

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档