mardi 1 novembre 2011

Tutorial Android : Développer une application passant un appel téléphonique

Voici un petit tutorial permettant de développer une application Android qui passe un appel téléphonique.

Pour ce faire, nous allons utiliser un Intent standard dans Androïd : Intent.ACTION_CALL
et utiliser un écouteur : PhoneStateListener, pour recevoir les événements permettant de suivre l'état de l'appel.

Pour passer un appel :

String n = "tel:5556";
Intent intent = new Intent( Intent.ACTION_CALL, Uri.parse( n ) );
startActivity( intent );

Ci-dessus on utilise l'intent avec en paramètre le numéro à appeler précédé de "tel:".

Pour suivre l'état de la communication on utilise un listener comme ci-dessous :





class TelListener extends PhoneStateListener {
    @Override
    public void onCallStateChanged(int state, String numero ) {
if(TelephonyManager.CALL_STATE_RINGING == state) 
           Log.i("LTM", "RINGING, numéro: " + numero);
            
        if(TelephonyManager.CALL_STATE_OFFHOOK == state) 
           Log.i("LTM", "OFFHOOK");
            
        if(TelephonyManager.CALL_STATE_IDLE == state) 
           Log.i("LTM", "IDLE");
            
super.onCallStateChanged(state, numero);
    }
}

Pour enregistrer l'écouteur décrit ci-avant on utilise le code suivant :

TelephonyManager manager = (TelephonyManager)this.getSystemService( 
  this.TELEPHONY_SERVICE );
manager.listen( new TelListener(), PhoneStateListener.LISTEN_CALL_STATE );


Exemple d'application Android passant un appel téléphonique :











Voici le source de l'activité (la vue) en entier :

















6 commentaires:

  1. bonjour
    je suis un peut debutant dans le developpement sous android.
    j'aimerai savoir si on peut recuperer la voix au cours d'un appel.
    le but c'est d'enregistrer cette voix ou bien la transformé.
    merci

    RépondreSupprimer
  2. Je ne pense pas que ce soit possible simplement

    RépondreSupprimer
  3. Bonjour, est il possible de faire cela en désactivant l'interface d'appel android? Merci

    RépondreSupprimer
  4. cc, meme question que Bando Koichi????? svp de l'aide!!!!!Merci

    RépondreSupprimer
  5. Bonjour !

    Est-ce possible de prédéfinir les numéros à appeler dans cette petite application ?
    Je souhaites faire une application pareille mais au lieu de composer des numéros et appeler, je veux les prédéfinir par des codes ussd. Merci de bien vouloir me répondre.

    RépondreSupprimer