Sobes.tech
Junior — Middle

Android platformasında daxil olan və çıxan zənglərin həyata keçirilməsi necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də daxil olan və çıxan zənglər standart platforma API-ləri vasitəsilə həyata keçirilir.

Çıxan zənglər: Çıxan zəng etmək üçün Intent.ACTION_CALL və ya Intent.ACTION_DIAL ilə Intent istifadə edə bilərsiniz.

  • ACTION_DIAL telefon tətbiqini nömrə ilə açır, lakin avtomatik zəng etmir.
  • ACTION_CALL dərhal zəng edir, lakin CALL_PHONE icazəsini tələb edir.

Çıxan zəng üçün nümunə 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 {
    // İcazə istəyin
}

Daxil olan zənglər: Daxil olan zəngləri idarə etmək üçün TelephonyManagerPhoneStateListener və ya BroadcastReceiver istifadə edilməlidir.

PhoneStateListener nümunəsi:

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:
                // Daxil olan zəng
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Zəng aktivdir
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Zəng bitdi və ya zəng yoxdur
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

Tam işləmək üçün əlavə icazələr, məsələn, READ_PHONE_STATE, lazım ola bilər.

Qeyd etmək vacibdir ki, Android 6.0 (API 23) və yuxarı versiyalarda, icazələri istifadəçi zamanı soruşmaq lazımdır.