I'm trying to build an app that can detect different gestures and then perform some action. I'm able to detect gestures using AccessibilityService onGesture method.
But I want to dispatch the gesture so that user actions are not blocked. How can I dispatchGesture from AccessibilityService onGesture method
public class MyAccessibilityService extends AccessibilityService {
private static final String TAG = "MyAccessibilityService";
@Override
public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
Log.d(TAG, "onAccessibilityEvent: " + accessibilityEvent.getEventType());
}
@Override
public void onInterrupt() {
Log.e(TAG, "onInterrupt: something went wrong");
}
@Override
public boolean onGesture(@NonNull AccessibilityGestureEvent gestureEvent) {
super.onGesture(gestureEvent);
int gestureId = gestureEvent.getGestureId();
GestureDescription.Builder gestureBuilder = new GestureDescription.Builder();
Log.d(TAG, "onGesture: Gesture Detected " + gestureId);
switch (gestureId){
case 17:
Log.d(TAG, "onGesture: Double Tap Happened");
}
GestureDescription gestureDescription = new GestureDescription.Builder().build();
dispatchGesture(gestureDescription, new GestureResultCallback() {
@Override
public void onCompleted(GestureDescription gestureDescription) {
super.onCompleted(gestureDescription);
}
@Override
public void onCancelled(GestureDescription gestureDescription) {
super.onCancelled(gestureDescription);
}
}, null);
return true;
}
}