Sobes.tech
Junior — Middle

Comment réaliser des appels entrants et sortants sur la plateforme Android?

sobes.tech IA

Réponse de l'IA

Pour gérer les appels entrants et sortants sur Android, les API standard de la plateforme sont utilisées.

Appels sortants : Pour effectuer un appel sortant, vous pouvez utiliser un Intent avec l'action Intent.ACTION_CALL ou Intent.ACTION_DIAL.

  • ACTION_DIAL ouvre l'application téléphone avec le numéro, mais ne passe pas l'appel automatiquement.
  • ACTION_CALL initie immédiatement l'appel, mais nécessite la permission CALL_PHONE.

Exemple de code pour un appel sortant :

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:+1234567890"));
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
    context.startActivity(callIntent);
} else {
    // Demander la permission à l'utilisateur
}

Appels entrants : Pour gérer les appels entrants, utilisez TelephonyManager et PhoneStateListener ou BroadcastReceiver pour écouter l'état de l'appel.

Exemple avec PhoneStateListener :

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
PhoneStateListener callStateListener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String phoneNumber) {
        switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                // Appel entrant
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Appel en cours
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Appel terminé ou aucune appel
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

Pour un fonctionnement complet avec les appels, des permissions supplémentaires comme READ_PHONE_STATE peuvent également être nécessaires.

Il est important de noter qu'à partir d'Android 6.0 (API 23), il faut demander les permissions à l'utilisateur au moment de l'exécution.