ב-Android מגרסה 12.0 (רמת API 31) ואילך, המערכת מספקת את
תבנית התראות CallStyle
כדי להבדיל בין התראות על שיחות לבין התראות על שיחות
סוגים אחרים של התראות. השתמשו בתבנית זו כדי ליצור הודעות נכנסות או
התראות על שיחות פעילות. התבנית תומכת בהתראות בפורמט גדול
שכוללות את פרטי המתקשר/ת ופעולות נדרשות כמו מענה
דחיית השיחות.
השיחות הנכנסות והמתמשכות הן אירועים בעדיפות גבוהה, ולכן ההתראות האלה לקבל עדיפות עליונה בלוח ההתראות. הדירוג הזה מאפשר גם כדי להעביר את השיחות המועדפות האלה למכשירים אחרים.
תבנית ההתראות של CallStyle
כוללת את הפעולות הנדרשות הבאות:
- מענה או דחייה של שיחות נכנסות.
- ניתוק בשיחות יוצאות.
- מענה או ניתוק לסינון שיחות.
פעולות בסגנון הזה מופיעות כלחצנים והמערכת מוסיפה אוטומטית של הסמלים והטקסטים המתאימים. אין תמיכה בתיוג ידני של הלחצנים. למידע נוסף על העקרונות לעיצוב התראות: התראות.
הפעולות הנדרשות מועברות ככוונות, כמו hangupIntent
ו
answerIntent
בסעיפים הבאים. כל אחד מהם הוא הפניה
מתוחזקת על ידי המערכת. האסימון הוא אובייקט קל
יכולה לעבור בין אפליקציות ותהליכים שונים. המערכת
האחראי על ניהול משך החיים של האסימון, וכן לוודא
אפשר להשתמש ב-PendingIntent
גם אם האפליקציה שיצרה אותו כבר לא
ריצה. כשנותנים לאפליקציה אחרת PendingIntent
, מקבלים
לו את ההרשאה לבצע את הפעולה שצוינה, כמו דחייה או תשובה.
ההרשאה הזו מוענקת גם אם האפליקציה שיצרה את ה-Intent
לא פועל כרגע. למידע נוסף, עיינו במשאבי העזרה
עבור PendingIntent
.
החל מ-Android 14 (רמת API 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
בגרסאות API 30 או גרסאות קודמות אל
שירות שפועל בחזית כדי להקצות להם את הדירוג הגבוה שניתן להם ב-API
רמה 31 ואילך. בנוסף, התראות של CallStyle
לגבי גרסה 30 של API
או לפני כן יכולים להשיג דירוג דומה על ידי סימון ההתראה בתור
צבעוניים, באמצעות השיטה setColorized()
.
שימוש בממשקי ה-API של Telecom עם התראות CallStyle
. מידע נוסף זמין במאמר הבא:
סקירה כללית של מסגרת Telecom