Глобальный сенсорный жест в Android?

Итак, я начинаю создавать очень простое приложение и читаю о том, как настроить жесты в приложении.
Я хочу знать, есть ли способ установить глобальные жесты для устройства Android?

Если приложение работает в фоновом режиме (вообще не на экране), а пользователь делает какие-то жесты на экране. могу ли я это контролировать? Могу ли я что-то запустить или активировать на основе этого жеста?

Пожалуйста, дайте мне некоторую информацию в деталях, если вы можете. Я новичок в этом.

Спасибо.


person ᴛʜᴇᴘᴀᴛᴇʟ    schedule 05.12.2014    source источник


Ответы (1)


Единственный способ глобально получать сенсорные жесты — это использовать AccessibilityService с FLAG_REQUEST_TOUCH_EXPLORATION_MODE флаг включен. Когда такой AccessibilityService активен, будет введен «режим сенсорного исследования». В результате (цитируется по ссылке выше)

В этом режиме движение одного пальца по экрану ведет себя как указатель мыши, нависающий над пользовательским интерфейсом. Система также будет обнаруживать определенные жесты, выполняемые на сенсорном экране, и уведомлять об этом службу.

Жесты, обнаруженные системой, перечислены в документации по AccessibilityService. Учтите, что это сильно влияет на использование системы в целом. Кроме того, AccessibilityService должен быть включен пользователем вручную через настройки системы специальных возможностей.

person cygery    schedule 05.12.2014
comment
Это очень познавательно. Спасибо! У меня только один вопрос. Вы сказали, что пользователю придется вручную включить специальные возможности в настройках. Я проверил на 3 разных телефонах, но нет возможности просто включить / выключить для специальных возможностей. - person ᴛʜᴇᴘᴀᴛᴇʟ; 05.12.2014
comment
Не доступность в целом, а конкретно ваш AccessibilityService должен быть включен вручную. Когда вы запустите настройки специальных возможностей, вы, скорее всего, найдете список, который должен включать встроенный TalkBack AccessibilityService. Как только вы установите свое приложение, которое включает в себя собственное AccessibilityService, оно также будет там указано. - person cygery; 05.12.2014
comment
Это понятно. Еще раз спасибо. Я посмотрю на это, и как только я закончу, я опубликую образец здесь. - person ᴛʜᴇᴘᴀᴛᴇʟ; 05.12.2014