У меня есть приложение, которое создает наложенную кнопку, которая остается поверх других приложений и позволяет пользователю запускать некоторые действия. Одним из действий является перетаскивание, которое позволяет пользователю изменять положение кнопки на экране.
Я управляю наложением и всеми действиями с его помощью внутри LifecycleService, а сама кнопка добавляется с помощью WindowManager.
Чтобы кнопка не сильно мешала работе пользователя в других приложениях, после освобождения наложения я перемещаю ее по обе стороны экрана.
У меня возникли проблемы в Android SDK 29 и более поздних версиях, когда на устройстве включена навигация с помощью жестов. Поскольку наложение остается на краях экрана, как только пользователь начинает действие перетаскивания, также срабатывает обратная навигация системы, останавливая мое действие наложения и превращая работу пользователя в кошмар.
Я пробовал использовать systemGestureExclusionRects, размещая exclusionRect там, где находится кнопка, и обновляя этот прямоугольник каждый раз, когда пользователь меняет положение кнопки, но, очевидно, Android игнорирует прямоугольники исключения, исходящие из окон, которые не прикреплены к активность.
Как я могу заставить систему игнорировать навигацию с помощью жестов, когда пользователь пытается использовать мое наложение?
Подробнее здесь: https://stackoverflow.com/questions/798 ... cleservice