Я использую API dispatchGesture из специальных возможностей Android.
Я добавил оверлей на экран, и я ищу способ dispatchGesture за оверлеем (оверлей - это то, что перехватывает исходный жест), поскольку в противном случае жест отправляется на мой OverlayView и не воспроизводится в приложении .
Есть ли способ сделать это с помощью API специальных возможностей?
Для контекста - я хочу иметь возможность помогать людям записывать действия в Android и воспроизводить их для доступности.




Увы, сделать это вообще нет возможности. Сенсорный оверлей улавливает все прикосновения, когда вы наблюдаете. Невозможно выполнить универсальную фильтрацию событий касания.
Вы, наверное, уже думали об этом, но если вы воспроизводите заранее записанные жесты, вы можете удалить оверлей перед их отправкой.
Универсального API фильтрации не существует, потому что очень сложно фильтровать события касания вне системного процесса, не создавая серьезного мусора.
Есть много способов ввести джанк при фильтрации входных событий. Самый простой - выделить память, что время от времени может приводить к сборке мусора. Но мне удавалось сделать ввод неровным разными способами. Обратите внимание, что пропуск наложения - это, по сути, еще один способ создания такого фильтра.
Вы должны использовать флаг параметров FLAG_NOT_TOUCHABLE для своего представления, а затем отправить свой клик.
Хм, спасибо! Не могли бы вы подробнее рассказать о том, что «API фильтрации общего назначения не существует, потому что очень сложно фильтровать события касания вне системного процесса, не создавая серьезного мусора»? Кроме того, я был бы доволен простым пропуском оверлея, а не общей фильтрацией событий (чтобы человек, записывающий, мог видеть действие во время его записи).