Android Jelly Bean представил голосовой поиск, который активируется долгим нажатием кнопки воспроизведения/паузы на гарнитуре. Поскольку мое приложение требует возможности использовать эти длинные нажатия, мне было интересно, есть ли способ отключить голосовой поиск или заставить Android играть честно с событиями кнопки.
Обработка кнопок гарнитуры перед голосовым поиском в Jelly Bean
Ответы (1)
Я сам не пробовал, но вы можете заставить это работать, используя AudioManager registerMediaButtonEventReceiver, так как кнопки громкости являются кнопками мультимедиа.
Музыкальное приложение AOSP имеет MediaButtonIntentReceiver который реагирует на нажатие кнопки громкости.
Кредит на это решение принадлежит этому ответу.
person
Bryan Herbst
schedule
17.07.2012
Я не боюсь. В Android 4.0+ все приемники медиа-кнопок должны использовать
registerMediaButtonEventReceiver
для приема нажатий кнопок. Эта часть все еще работает, но, к сожалению, Android не дает намерения сторонним приложениям перед обработкой голосового поиска.
- person tvkanters; 17.07.2012
Приложение Pressy умеет цеплять долгое нажатие кнопки гарнитуры (даже на Lollipop). У Pressy есть специальный интерфейс с кнопкой «Перейти», которая, по-видимому, запускает какое-то намерение и заставляет систему спрашивать, хотите ли вы сделать Pressy или Google Search по умолчанию. Я хотел бы знать, как это достигается.
- person Oliver Pearmain; 19.12.2014