Estou com um problema, fiz um aplicativo que está usando os botões de volume como contador, os botões estão fazendo a contagem direitinho, porem ao mesmo tempo que fazem a contagem estão aumentando e diminuindo o volume, alguem sabe o codigo para desabilitar o controle de voluma na Activity???
Android Dev, Funcionalidade do volume na Activity
J
5 Respostas
posta o código...
Em geral após capturar o botão é preciso fazer sair do método retornando true.Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_UP) {
}
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
}
return true;
default:
return super.dispatchKeyEvent(event);
}
}
A idéia dos booleans quando se está tratando eventos é que se você retornou true significa que voce “lidou” com ele, e quem despachou pode ter certeza que alguem fez algo com o evento, mas as vezes o parent ignora esse valor e executa seu codigo mesmo assim.
J
Este é o codigo para os botões de volume
/Função dos Botões de Volume
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int action = event.getAction();
int keyCode = event.getKeyCode();
super.dispatchKeyEvent(event);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
if (action == KeyEvent.ACTION_DOWN ) {
contador++;
mostra.setText("Contador: " + contador);
}
return super.dispatchKeyEvent(event);
case KeyEvent.KEYCODE_VOLUME_DOWN:
if (action == KeyEvent.ACTION_DOWN) {
contador--;
mostra.setText("Contador: " + contador);
}
return super.dispatchKeyEvent(event);
default:
return super.dispatchKeyEvent(event);
}}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
os botões de funçao de fazer contagem positiva e negativa, ele está fazendo está contagem mas ao mesmo tempo está aumentando e diminuindo o volume, oque pode resolver???
A
Olá
Nos dois primeiros case´s não usa “return super.dispatchKeyEvent(event);” usa “return true;” como foi indicado pelo colega fabriciov.
No default, não chama o super, usa “return false;”
J
Obrigado pelo ajuda pessoal, funcionou direitinho 
Criado 4 de maio de 2013
Ultima resposta 8 de mai. de 2013
Respostas 5
Participantes 4
Alura O que é Firebase? Para que serve, principais característica e um Guia dessa ferramenta Google O poder do Firebase! Saiba como a plataforma pode impulsionar suas aplicações web e mobile, descobrindo tudo neste artigo completo.
Casa do Codigo Xamarin Forms e MVVM: Desenvolvimento de aplicacoes... Por Everton Coimbra de Araujo — Casa do Codigo