Sobes.tech
Junior — Middle

Ինչպես իրականացնել մուտքային և ելքային զանգեր Android հարթակում:

sobes.tech AI

Պատասխան AI-ից

Android-ով մուտքային և ելքային զանգեր իրականացնելու համար օգտագործվում են ստանդարտ API-ներ:

Ելքային զանգեր: Ելքային զանգ կատարելու համար կարելի է օգտագործել Intent-ներ Intent.ACTION_CALL կամ Intent.ACTION_DIAL:

  • ACTION_DIAL բացում է հեռախոսային հավելվածը՝ նշված համարով, բայց ավտոմատ չի կատարում զանգը:
  • ACTION_CALL անմիջապես սկսում է զանգը, բայց պահանջում է CALL_PHONE թույլտվություն:

Ելքային զանգի համար օրինակային կոդ՝

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 {
    // Պահանջել թույլտվություն օգտագործողից
}

Մուտքային զանգեր: Մուտքային զանգերը մշակելու համար անհրաժեշտ է օգտագործել TelephonyManager և PhoneStateListener կամ BroadcastReceiver՝ զանգի վիճակը լսելու համար:

Օրինակ՝ 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:
                // Մուտքային զանգ
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // Զանգը ակտիվ է
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                // Զանգը ավարտված է կամ չկա զանգ
                break;
        }
    }
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

Կարող են անհրաժեշտ լինել լրացուցիչ թույլտվություններ, օրինակ՝ READ_PHONE_STATE:

Կարևոր է նկատել, որ Android 6.0 (API 23) և ավելի նոր տարբերակներում անհրաժեշտ է թույլտվություններ խնդրել օգտագործողից հավելվածի գործարկման ժամանակ։