首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

自定义大局快捷键

2012-09-12 
自定义全局快捷键在Activity类onKeyDown方法中进入拦截事件public boolean onKeyDown(int keyCode, KeyEve

自定义全局快捷键
在Activity类onKeyDown方法中进入拦截事件
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
    Log.i("key down", "key code:"+event.getKeyCode());
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getApplicationInfo().targetSdkVersion
                    >= Build.VERSION_CODES.ECLAIR) {
                event.startTracking();
            } else {
                onBackPressed();
            }
            return true;
        }else if(keyCode == 7){ (快捷键code=7,定位到桌面时钟)
            ComponentName cmp = new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock");
            Intent intent = new Intent();
            intent.setComponent(cmp);
            startActivity(intent);
            return true;
        }else if(keyCode == 42){
            ComponentName cmp = new ComponentName("com.autonavi.routedemo", "com.autonavi.routedemo.Main");
            Intent intent = new Intent();
            intent.setComponent(cmp);
            startActivity(intent);
            return true;
        }else if(keyCode == 31){(快捷键code=31,定位到日历)
            ComponentName cmp = new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity");
            Intent intent = new Intent();
            intent.setComponent(cmp);
            startActivity(intent);
            return true;
        }else if(keyCode == KeyEvent.KEYCODE_X){(快捷键X,静音/取消静音)
            Log.i("activity onkeydown", "you have clicked the x key");
                      
            AudioManager mAudioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);
            Log.i("activity onkeydown RingerMode before:", ""+mAudioManager.getRingerMode());
    boolean state = ((mAudioManager.getRingerMode()&2)==0)?false:true;
            Log.i("activity onkeydown state", ""+state);
    mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC,state);
            mAudioManager.setRingerMode(state==false?2:1);
            Log.i("activity onkeydown RingerMode after:", ""+mAudioManager.getRingerMode());
            return true;
        }else if(keyCode == KeyEvent.KEYCODE_EQUALS){(快速启动播放器)
            Log.i("activity onkeydown", "you have clicked the KEYCODE_EQUALS key:"+KeyEvent.KEYCODE_EQUALS);
                      
            AudioManager mAudioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);
            mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC,false);
            mAudioManager.setRingerMode(2);
    mAudioManager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
            return true;
        }else if(keyCode == KeyEvent.KEYCODE_MINUS){
            Log.i("activity onkeydown", "you have clicked the KEYCODE_MINUS key:"+KeyEvent.KEYCODE_MINUS);       
            AudioManager mAudioManager = (AudioManager)getSystemService(Service.AUDIO_SERVICE);
            mAudioManager.adjustVolume(AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
            return true;
        }

热点排行