Junior — Middle
Kā īstenot ienākošos un izejo zvanu funkcionalitāti Android platformā?
sobes.tech AI
Atbilde no AI
Android platformā tiek izmantoti standarta API, lai veiktu ienākošos un izejošos zvanus:
Izejošie zvanus:
Izejošo zvanus var uzsākt, izmantojot Intent ar Intent.ACTION_CALL vai Intent.ACTION_DIAL:
ACTION_DIALatver tālruņa lietotni ar norādīto numuru, bet automātiski neveic zvanu:ACTION_CALLtūlīt uzsāk zvanu, bet prasaCALL_PHONEatļauju:
Izejošā zvana piemērs 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 {
// Pieprasīt atļauju no lietotāja
}
Ienākošie zvanus:
Ienākošo zvanu apstrādei jāizmanto TelephonyManager un PhoneStateListener vai BroadcastReceiver, lai klausītos zvana stāvokli:
PhoneStateListener piemērs:
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:
// Ienākošais zvans
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// Zvana aktivitāte
break;
case TelephonyManager.CALL_STATE_IDLE:
// Zvana beigas vai nav zvanu
break;
}
}
};
telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);
Var būt nepieciešamas papildu atļaujas, piemēram, READ_PHONE_STATE:
Svarīgi: Android 6.0 (API 23) un jaunākās versijās atļaujas ir jāpieprasa lietotājam laikā, kad lietojumprogramma darbojas.