Sobes.tech
Junior — Middle

Android platformunda gelen ve giden aramaları nasıl gerçekleştirilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Android'de gelen ve giden aramaları standart platform API'leri kullanarak gerçekleştirilir.

Giden Aramalar: Giden arama yapmak için Intent.ACTION_CALL veya Intent.ACTION_DIAL eylemiyle bir Intent kullanılabilir.

  • ACTION_DIAL telefon uygulamasını numarayla açar, ancak aramayı otomatik olarak yapmaz.
  • ACTION_CALL hemen aramayı başlatır, ancak CALL_PHONE izni gerektirir.

Giden arama için örnek kod:

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 {
    // Kullanıcıdan izin iste
}

Gelen Aramalar: Gelen aramaları işlemek için TelephonyManager ve PhoneStateListener veya BroadcastReceiver kullanılır.

PhoneStateListener kullanımı örneği:

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:
                // Gelen arama
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Arama aktif
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Arama sona erdi veya yok
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

Tam fonksiyonellik için ek izinler gerekebilir, örneğin READ_PHONE_STATE.

Önemli not: Android 6.0 (API 23) ve sonrası sürümlerde, izinleri çalışma zamanında kullanıcıdan istemek gerekir.