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) և ավելի նոր տարբերակներում անհրաժեշտ է թույլտվություններ խնդրել օգտագործողից հավելվածի գործարկման ժամանակ։