É possível criar um serviço Android que escute as teclas pressionadas por hardware?
Gostaria de executar um serviço em segundo plano do Android que atuará como um ouvinte de teclas na tela inicial ou quando o telefone estiver em suspensão. Isso é possível?
A partir de exemplos semi-relacionados on-line, montei o serviço a seguir, mas recebo o erro "onKeyDown é indefinido para o tipo Serviço". Isso significa que não pode ser feito sem reescrever o Launcher ou há algo óbvio que estou perdendo?
public class ServiceName extends Service {
@Override
public void onCreate() {
//Stuff
}
public IBinder onBind(Intent intent) {
//Stuff
return null;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_A:
//Stuff
return true;
case KeyEvent.KEYCODE_B:
//Stuff
return true;
//etc.
}
}
return super.onKeyDown(keyCode, event);
}
}
Percebo os padrões do Android para a barra de pesquisa quando você digita na tela inicial, mas isso realmente é apenas para um uso muito particular. Eu realmente não espero que ninguém além de mim queira isso. Eu acho que seria bom, por exemplo, usar o botão da câmera para ativar o telefone.