Предположим, что мое приложение (скажем, онлайн-радио) может (и часто будет ) работать в фоновом режиме.Мой пользовательский IME
получает физические нажатия клавиш, и в зависимости от нажатой клавиши я хочу выполнить некоторые операции в фоновом приложении, например, изменить текущую радиостанцию.Приложение уже подготовлено для обработки упомянутых выше сочетаний клавиш, поэтому IF
приложение работает на переднем плане, и проблема решена.
Но что происходит, когда приложение продолжает работать в фоновом режиме?
Если бы я был на Windows
, я просто отправил бы сообщения Key Down
, Key Up
и т. Д. В фоновое приложение WindowProc
, гарантируя, что приложение (и только приложение)будет получать эти нажатия клавиш, как он будет работать на переднем плане.Но не уверен, что это работает и на Android.Если это работает, можете ли вы помочь мне с кодом Java
, так как я новичок на Android?
Если эта идея не работает на Android, вы бы предложили мне другое решение, чтобы каким-то образом перенаправить физическое нажатие клавишиот Input Method Editor
до приложения, которое работает в фоновом режиме, предпочтительно без временного получения приложения на переднем плане ?
Любые предложения приветствуются.Лучше всего было бы иметь решение, которое работает на Android 7 (или выше), но решения для Android 8
и выше также в порядке.