Sobes.tech
Junior — Middle

Hoe implementeer je inkomende en uitgaande gesprekken op het Android-platform?

sobes.tech AI

Antwoord van AI

Op Android worden inkomende en uitgaande gesprekken afgehandeld met behulp van de standaard API's van het platform.

Uitgaande gesprekken: Om een uitgaand gesprek te voeren, kun je een Intent gebruiken met de actie Intent.ACTION_CALL of Intent.ACTION_DIAL.

  • ACTION_DIAL opent de telefoonapp met het nummer, maar plaatst niet automatisch de oproep.
  • ACTION_CALL start de oproep onmiddellijk, maar vereist de permissie CALL_PHONE.

Voorbeeldcode voor een uitgaand gesprek:

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 {
    // Vraag toestemming aan de gebruiker
}

Inkomende gesprekken: Om inkomende gesprekken te verwerken, moet je TelephonyManager en PhoneStateListener of BroadcastReceiver gebruiken om de gespreksstatus te luisteren.

Voorbeeld met 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:
                // Inkomend gesprek
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Gesprek actief
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Gesprek beëindigd of geen gesprekken
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

Voor volledige functionaliteit met gesprekken kunnen aanvullende permissies nodig zijn, zoals READ_PHONE_STATE.

Het is belangrijk op te merken dat vanaf Android 6.0 (API 23) permissies tijdens de uitvoering aan de gebruiker moeten worden gevraagd.