#android #service #keyevent
#Android #Обслуживание #ключевое событие
Вопрос:
Мне нужно создать приложение для Android, и одно из требований заключается в том, что при нажатии клавиши (например, клавиши громкости) мой телефон должен сообщать мне количество непрочитанных сообщений. Все работает нормально: я могу передавать непрочитанные сообщения пользователю с помощью преобразования текста в речь, у меня есть broadcastreceiver, activity и service. В activity вы можете запустить или остановить службу, и в службе я считаю непрочитанные сообщения, но теперь я должен знать, как перехватить ключевое событие на главном экране телефона, когда служба запущена, потому что при нажатии клавиши мне нужно сообщить пользователю, сколько сообщений непрочитано. В действии просто поймать ключевое событие, но оно также должно работать, когда служба запущена, а вы не участвуете в действии. Может быть, я могу сделать это с помощью широковещательного приемника, но я не знаю как.
Комментарии:
1. Я бы предположил, что это что-то очень невыполнимое. Или, по крайней мере, я бы счел это очень навязчивым, если бы ваше приложение появилось, как только я захотел отрегулировать громкость мелодии звонка на рабочем столе. Скажите своему менеджеру, что это Android-способ использовать виджеты для этой цели.
Ответ №1:
В действии просто поймать ключевое событие, но оно также должно работать, когда служба запущена, а вы не участвуете в действии.
Это не поддерживается. Самое близкое, что вы можете получить, это ACTION_CAMERA_BUTTON
и ACTION_MEDIA_BUTTON
, но не у всех пользователей есть эти кнопки, и они будут транслироваться только в том случае, если пользователь нажимает кнопку, а действие на переднем плане не использует событие (например, приложение камеры, использующее кнопку КАМЕРЫ в качестве триггера затвора).).