Sobes.tech
Junior — Middle

Android platformasida kiruvchi va chiquvchi qo'ng'iroqlarni qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Androidda kirish va chiqish qo'ng'iroqlarini platformaning standart API'lari yordamida amalga oshirish mumkin.

Chiqish qo'ng'iroqlari: Chiqish qo'ng'iroq qilish uchun Intent.ACTION_CALL yoki Intent.ACTION_DIAL bilan Intent ishlatish mumkin.

  • ACTION_DIAL telefon ilovasini raqam bilan ochadi, lekin avtomatik qo'ng'iroq qilmaydi.
  • ACTION_CALL darhol qo'ng'iroqni boshlaydi, ammo CALL_PHONE ruxsatini talab qiladi.

Chiqish qo'ng'iroq uchun kod misoli:

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 {
    // Foydalanuvchidan ruxsat so'rash
}

Kirish qo'ng'iroqlari: Kirish qo'ng'iroqlarini boshqarish uchun TelephonyManager va PhoneStateListener yoki BroadcastReceiver ishlatiladi.

PhoneStateListener bilan misol:

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:
                // Kirish qo'ng'iroqi
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Qo'ng'iroq faol
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Qo'ng'iroq tugadi yoki hech qanday qo'ng'iroq yo'q
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

To'liq ishlash uchun qo'shimcha ruxsatlar, masalan, READ_PHONE_STATE, talab qilinishi mumkin.

E'tibor bering, Android 6.0 (API 23) va undan yuqori versiyalarda, ruxsatlarni foydalanuvchidan ishga tushirish vaqtida so'rash kerak.