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_DIALtelefon tətbiqini nömrə ilə açır, lakin avtomatik zəng etmir.ACTION_CALLdərhal zəng edir, lakinCALL_PHONEicazə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 TelephonyManager və PhoneStateListener 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.