公司项目有个需求,就是拦截VR眼镜上的返回按键,既然要拦截按键,私以为有以下两种方式:
1. AccessibilityService,Android辅助工具可以实现拦截按键、焦点变化、触摸时间、姿势等。
2. 使用adb shell命令,getevent方式分析获取到的按键的值。
第一种方法最简单,代码如下:
AccessibilityService.java
public class AccessBackKeyService extends AccessibilityService {
private static final String TAG = "AccessBackKeyService";
@Override
protected boolean onKeyEvent(KeyEvent event) {
Log.i(TAG, "onKeyEvent");
if(event.getAction() == KeyEvent.ACTION_DOWN){
return super.onKeyEvent(event);
}
Log.i(TAG, "onKeyEvent ACTION_DOWN");
int key = event.getKeyCode();
switch(key){
case KeyEvent.KEYCODE_VOLUME_DOWN:
break;
case KeyEvent.KEYCODE_VOLUME_UP:
break;
case KeyEvent.KEYCODE_BACK:
Log.i(TAG, "KEYCODE_BACK");
break;
case KeyEvent.KEYCODE_ESCAPE: break;
}
return super.onKeyEvent(event);
}
@Override
public void onInterrupt() { }
@Override
public void onCreate() {