Utilizar códigos del dialer en tu aplicación

Consigue gratis tu cuenta

Crea una API REST con Node.js y MongoDB

En este curso vas a aprender a crear una API REST con Node.js y MongoDB, además de crear un entorno de desarrollo con Docker y Docker Compose.

Comenzar ahora
Navegando para resolver una duda, me topé con un TIP muy interesante del amigo Rafa Vázquez. ¿Quién no ha utilizado alguna vez algún "código secreto" en su terminal? Me refiero a códigos marcados en el dialer como *#06# que nos muestra el IMEI del terminal y otros tantos similares. Pues hoy os traigo, gracias a él, un TIP bastante sencillo a la vez que práctico por el cual podréis utilizar esta clase de códigos en vuestras aplicaciones. Para que así, al teclear dicho número vuestra aplicación, esta reciba la llamada y actúe según creáis oportuno.

Show me the (secret) code

Lo primero que debéis hacer es definir un intent-filter dentro de nuestro AndroidManifest:
<intent-filter>
      <action android:name="android.provider.Telephony.SECRET_CODE" />
      <data android:scheme="android_secret_code" android:host="1234" />
</intent-filter>
Donde, como podemos ver, pondremos la combinación de números que queramos, en este caso "1234". Para finalmente recoger la llamada dentro de nuestro Activity/Broadcast Receiver/... de la siguiente manera:
public class CustomReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.provider.Telephony.SECRET_CODE")) {
            String numero = intent.getData().getHost();
            if (numero.equals("1234")) {
                //Funcionalidad secreta en nuestra aplicación =D
            } 
        }
    }
}
Así de simple y así de útil. Ahora podremos ir a nuestro dialer y teclear:
 *#*#1234#*#*
 Espero que os haya gustado. ¿Qué oscura funcionalidad le pondréis a vuestras apps?

¿Quieres seguir aprendiendo?