Intercepter les touches de volumes

Si vous souhaitez changer le comportement des touches de volumes de votre téléphone android. Vous pouvez implémenter les méthodes onKeyDown et onKeyUp dans votre activité.

Il faut surcharger les deux méthodes. onKeyDown empêchera le changement de volume et onKeyUp empêchera les sons de notifications de changement du volume.

Le return true dans ces deux méthodes permet de dire que vous avez intercepté l’événement.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
       return true;
   }
   if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
       return true;
    }
   return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
       return true;
   }
   if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
       return true;
   }
   return super.onKeyUp(keyCode, event);
}

Détecter si une application android tourne dans l'émulateur

Parfois, il est nécessaire de détecter si on se trouve dans l’émulateur. Cela permet par exemple de contourner les limitations réseau de l’émulateur.

Vous pouvez faire cela à l’aide du code suivant:

if ("sdk".equals(android.os.Build.PRODUCT)) {
//Dans l'émulateur
}

Mystère

Voici ma première application publiée sur l’android market. C’est une base d’énigmes à résoudre depuis votre téléphone rangé par difficultés.

Ce n’est pour le moment qu’une version de démo. Le plus important maintenant c’est d’étoffer la base d’énigmes.

GCC savoir si on est inclus par de l'ASM

Récemment j’ai travaillé sur un projet où j’avais un fichier h inclus par de l’asm ou du C. Je ne voulais pas que certaines partie du .h soit inclus uniquement dans le cas où l’on est dans pas dans le ASM. On peut faire cela très simplement avec le préprocesseur:

#ifndef __ASSEMBLER__
MON CODE
#endif  /*  __ASSEMBLER__ */

Voir ce que fait ld-linux.so

Si vous souhaitez savoir ce que fait ld-linux.so vous utiliser la variable d’environnement LD_DEBUG.

Vous pouvez la mettre à help pour connaitre toute les options possible.

Une option que que j’utilise est libs qui permet de voir où sont cherchés les différentes libs.

Android ne reconstruire qu'une partie du framework

Si vous souhaitez ne recompiler qu’une partie du framework android vous pouvez utiliser la commande mmm.

Par exemple pour ne recompiler que la calculatrice:

source build/envsetup.sh
mmm packages/apps/Calculator/