我的用户将使用TalkBack或其他一些Accessible Service.我想在我们的应用程序中捕获onKeyEvent事件,但事件将被分派到启用的Accessibility Services.我创建了以下基本辅助功能服务.
public class Accessibility_Service extends AccessibilityService {
private String TAG = Accessibility_Service.class.getSimpleName();
@Override
public boolean onKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
if (action == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
Log.d("Hello", "KeyUp");
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
Log.d("Hello", "KeyDown");
}
return true;
} else {
return super.onKeyEvent(event);
}
}
/**
* Passes information to AccessibilityServiceInfo.
*/
@Override
public void onServiceConnected() {
Log.v(TAG, "on Service Connected");
AccessibilityServiceInfo info = new AccessibilityServiceInfo(); …
Run Code Online (Sandbox Code Playgroud)