最近需求说要做一个,监听组合按键启动指定的应用。还好是我们自己的ott盒子,这样就比较方便了。
接上一篇博客:【android应用】辅助服务监听系统按键(AccessibilityService最简实例)
上一篇博客中我们说到了,通过accessibility来监听按键活动。这一篇中,我们就来实现监听一个组合键(上+左+下+右)的组合键来启动指定的应用。
思路
1、获取到上抛的按键值,比对是否是你需要的按键,一一比对。
2、通过数组array保存你要的按键值。
实例代码
public class CompositeKeyEvent {
private static final String TAG = "CompositeKeyEvent";
private static CompositeKeyEvent mCompositeKeyEvent = null;
List<Integer> keyList = Arrays.asList(KeyEvent.KEYCODE_DPAD_UP,KeyEvent.KEYCODE_DPAD_LEFT,KeyEvent.KEYCODE_DPAD_DOWN,KeyEvent.KEYCODE_DPAD_RIGHT);
private int keycount = 0;
private CompositeKeyEvent(){}
private static void init (){}
public static CompositeKeyEvent getinstance(){
if(null == mCompositeKeyEvent){
mCompositeKeyEvent = new CompositeKeyEvent();
init();
}
return mCompositeKeyEvent;
}
public void isCompositeKey(KeyEvent event){
if (event.getAction() == KeyEvent.ACTION_DOWN) {
//按下
} else if (event.getAction() == KeyEvent.ACTION_UP) {
//弹起
if((event.getKeyCode() == keyList.get(keycount))){
Log.d(TAG, "isCompositeKey: keycount " + keycount + " size " + keyList.size());
if(keycount < (keyList.size()-1)){
keycount += 1;
}else{
Log.d(TAG, "isCompositeKey: start App");
keycount = 0;
}
}else{
keycount = 0;
}
}
}
}
结束语
以上就是本次分享的组合按键的实例。最后惯例给大家推介一下我们的技术工作号,欢迎大家来交流技术问题,谢谢!