Comment capturer deux clics sur l'un des boutons physiques (y compris le bouton optique)?Capturez deux clics sur un bouton physique
Quelque chose comme ce que fait QuickDesk avec les deux clics du bouton Accueil.
Merci
Comment capturer deux clics sur l'un des boutons physiques (y compris le bouton optique)?Capturez deux clics sur un bouton physique
Quelque chose comme ce que fait QuickDesk avec les deux clics du bouton Accueil.
Merci
Juste une idée:
S'il n'y a pas d'API déjà dans Android pour gérer que vous pourriez essayer de reporter la conclusion sur le simple/double/triple/etc. cliquez en réglant un petit délai d'attente (disons ~ 300ms environ) dans ce gestionnaire de boutons hadrware surchargé et en attendant comptez le nombre d'appels effectués sur ce bouton spécifique, vérifiez-le quand la minuterie se déclenche et que vous l'avez.
Edit:
Voici quelque chose du haut de ma tête. Ajustez-le un peu pour une performance plus optimisée.
private Timer mDoubleClickTimer;
private boolean possibleDoubleClick = false;
@Override
public boolean onKeyUp(int keyCode, KeyEvent event){
if(keyCode==KeyEvent.KEYCODE_MENU){ //or whatever key you want to check for double-clicks
if(mDoubleClickTimer!=null) {mDoubleClickTimer.cancel();}
if(!possibleDoubleClick){
possibleDoubleClick = true;
mDoubleClickTimer = new Timer();
mDoubleClickTimer.schedule(new TimerTask() {
@Override
public void run() {
//single click detected
//handle it here
possibleDoubleClick = false;
}
},300);
}else{
//double click detected
//handle it here
possibleDoubleClick = false;
}
//... other key processing if you need it
return false;
}
C'est ce que je pensais aussi ... pourriez-vous écrire un exemple simple? – mlevit
Cet exemple fonctionne pour n'importe quel bouton, sauf le plus important: le bouton Accueil! –