自定义全局快捷键

本文转自 (http://zhmeup.iteye.com/blog/1068143)

在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; 
        } 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值