Android的全局键(home键_长按耳机键)详解【android源码解析八】.txtAndroid的全局键(home键/长按耳机键)详解【android源码解析八】Android的全局键(home键/长按耳机键)详解【android源码解析八】如果想在Android手机要想扩展一个实体键,就我知道而言有两种方法,,区别不大,下面分享给大家:转载请标明出处:(一),。(Home键就是这么实现的)。效果图如下:(二)可以利用广播的形式,()对这个实体键发广播,上层接受这个广播来处理也可以达到这个效果。耳机键就是利用广播来接受的。无论在哪个界面长按耳机键,都会进入到音乐的界面。(长按耳机键的)效果图如下:下面我详细展开来说明一下:一、先说Home键的实现的大致流程,即---->为什么点击Home键,都进入到launcher的待机界面;(1)Home键的定义在step1:frameworks/base/core/java/android/view/,:static{ames();}step2:ames()方法其实就是加载了许多键的定义,把这些键对应的值都放到Array数组中。ames(){SparseArray<String>names=KEYCODE_SYMBOLIC_NAMES;(KEYCODE_UNKNOWN,"KEYCODE_UNKNOWN");(KEYCODE_SOFT_LEFT,"KEYCODE_SOFT_LEFT");(KEYCODE_SOFT_RIGHT,"KEYCODE_SOFT_RIGHT");(KEYCODE_HOME,"KEYCODE_HOME");(KEYCODE_BACK,"KEYCODE_BACK");(KEYCODE_CALL,"KEYCODE_CALL");(KEYCODE_ENDCALL,"KEYCODE_ENDCALL");(KEYCODE_0,"KEYCODE_0");(KEYCODE_1,"KEYCODE_1");(KEYCODE_2,"KEYCODE_2");(KEYCODE_3,"KEYCODE_3");(KEYCODE_4,"KEYCODE_4");(KEYCODE_5,"KEYCODE_5");(KEYCODE_6,"KEYCODE_6");(KEYCODE_7,"KEYCODE_7");(KEYCODE_8,"KEYCODE_8");(KEYCODE_9,"KEYCODE_9");step3:而Home键对应的值如下:/**Keycodeconstant:Homekey.*Thiskeyishandledbytheframeworkandisneverdeliveredtoapplications.*/publicstaticfinalintKEYCODE_HOME=3;(2)Home键的处理如下:在step1:frameworks/base/policy//android/internal/policy/impl/:在这个方法interceptKeyBeforeDispatching(.........)中处理有对Home,Search,menu,音量大小键等等:/**{***@inheritDoc}*/***@OverridepubliclonginterceptKeyBeforeDispatching(WindowStatewin,KeyEventevent,intpolicyFlags){finalbooleankeyguardOn=keyguardOn();finalintkeyCode=();finalintrepeatCount=();finalintmetaState=event.
Android的全局键(home键 长按耳机键)详解【android源码解析八】.txt 来自淘豆网www.taodocs.com转载请标明出处.