في Android 12.0 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يوفر النظام
CallStyle
للتمييز بين إشعارات المكالمات
والأنواع الأخرى من الإشعارات استخدم هذا القالب لإنشاء رسائل
إشعارات المكالمات الجارية. يتيح النموذج إرسال الإشعارات كبيرة الحجم.
التي تتضمن معلومات المتصل والإجراءات المطلوبة مثل الرد أو
ورفض المكالمات.
ولأنّ المكالمات الواردة والجارية هي أحداث ذات أولوية عالية، لا يتم إرسال هذه الإشعارات أولوية قصوى في مركز الإشعارات يتيح هذا الترتيب أيضًا إعادة توجيه هذه المكالمات ذات الأولوية إلى أجهزة أخرى.
يتضمّن نموذج الإشعارات CallStyle
الإجراءات المطلوبة التالية:
- يمكنك الرد أو رفض للمكالمات الواردة.
- إنهاء المكالمة للمكالمات الجارية.
- يمكنك الردّ أو إنهاء المكالمة لفحص المكالمات.
تظهر الإجراءات في هذا النمط كأزرار، حيث يضيف النظام تلقائيًا للأيقونات والنصوص المناسبة. لا يتوفّر التصنيف اليدوي للأزرار. لمزيد من المعلومات حول مبادئ تصميم الإشعارات، راجع الإشعارات:
![إشعارات نمط المكالمات مع أزرار مصنَّفة](https://developer.android.com/static/images/ui/notifications/CallStyle.png?hl=ar)
يتم تمرير الإجراءات المطلوبة كأهداف، مثل hangupIntent
answerIntent
في الأقسام التالية. كلٌّ من هذه يعد بمثابة إشارة إلى
الذي يحتفظ به النظام. الرمز المميز عبارة عن كائن خفيف
يمكن تمريرها بين التطبيقات والعمليات المختلفة. النظام هو
مسئولاً عن إدارة فترة بقاء الرمز المميز والتأكد من
يمكن استخدام PendingIntent
حتى إذا لم يعُد التطبيق الذي أنشأه قد انتهى
الجري. عندما تمنح تطبيقًا آخر PendingIntent
، يعني ذلك أنّك تمنح
إذن بتنفيذ العملية المحددة، مثل الرفض أو الإجابة.
يتم منح هذا الإذن حتى إذا كان التطبيق الذي أنشأ intent.
ليست قيد التشغيل حاليًا. لمزيد من المعلومات، يُرجى الاطّلاع على المستندات المرجعية.
لحساب PendingIntent
.
يمكنك ضبط إشعارات المكالمات بدءًا من Android 14 (المستوى 34 من واجهة برمجة التطبيقات)
بحيث لا يمكن إغلاقها لإجراء ذلك، استخدِم إشعارات CallStyle
مع
Notification.FLAG_ONGOING_EVENT
إلى
Notification.Builder#setOngoing(true)
في ما يلي أمثلة على استخدام طُرق مختلفة مع CallStyle
.
.
Kotlin
// Create a new call, setting the user as the caller. val incomingCaller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as the caller. Person incomingCaller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
مكالمة واردة
استخدِم طريقة forIncomingCall()
لإنشاء إشعار نمط الاتصال
مكالمة واردة.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller);
مكالمة جارية
استخدِم طريقة forOngoingCall()
لإنشاء إشعار نمط الاتصال
مكالمة جارية.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller);
فحص مكالمة
استخدام طريقة forScreeningCall()
لإنشاء إشعار نمط مكالمة لـ
فحص مكالمة.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
// Create a call style notification for screening a call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
توفير التوافق عبر المزيد من إصدارات Android
ربط إشعارات "CallStyle
" على الإصدار 30 أو الإصدارات الأقدم من واجهة برمجة التطبيقات
خدمة تعمل في المقدّمة لمنحهم الترتيب الأعلى الذي يتم منحهم به في واجهة برمجة التطبيقات
من المستوى 31 أو أعلى. بالإضافة إلى ذلك، هناك CallStyle
إشعار على الإصدار 30 من واجهة برمجة التطبيقات
أو الأقدم منه في ترتيب مشابه عن طريق وضع علامة على الإشعار كـ
باستخدام طريقة setColorized()
.
استخدام واجهات برمجة تطبيقات Telecom مع إشعارات CallStyle
لمزيد من المعلومات، يُرجى مراجعة
نظرة عامة على إطار عمل الاتصالات السلكية.