אנשים ושיחות

היוזמה 'אנשים ושיחות' היא יוזמה רב-שנתית של Android שמטרתה להבליט את האנשים והשיחות בממשקי המערכת של הטלפון. העדיפות הזו מבוססת על העובדה שתקשורת ואינטראקציה עם אנשים אחרים הן עדיין התחום הפונקציונלי החשוב והמוערך ביותר עבור רוב המשתמשים שלנו בכל הדמוגרפיות.

ב-Android 11 הושקו מספר תכונות לתמיכה ביוזמה 'אנשים ושיחות'.

מרחב שיחה


מרחב השיחה הוא אזור התראות ייעודי לשיחות בזמן אמת בין אנשים.
איור 1: המרחב לשיחות.

במכשירים ניידים, יש קטע נפרד בחלק העליון של מגש ההודעות שכולל רק שיחות בזמן אמת עם אנשים (כמו שיחות והודעות בצ'אט, כולל צ'אטים קבוצתיים). ההתראות במרחב הזה נראות ומתנהגות באופן שונה מהתראות שלא קשורות לשיחות בהרבה טלפונים:

  • העיצוב שונה, עם דגש חזק על האווטאר שמייצג אנשים בשילוב עם האפליקציה שמנהלת את השיחה.
  • הקשה על ההתראה פותחת את השיחה באפליקציה (או בבועה, אם השיחה הוצגה קודם בבועה), והקשה על סמן הטקסט מרחיבה את ההודעות החדשות בחלונית ההתראות לאורך מלא עם רשימת האפשרויות המלאה.
  • יש פעולות ספציפיות לשיחה (חלקן מתבצעות בלחיצה ארוכה):
    • סימון השיחה הזו כשיחה בעדיפות גבוהה
    • העברת השיחה לבועה (האפשרות מוצגת רק אם האפליקציה תומכת בבועות)
    • השתקת ההתראות לגבי השיחה הזו
    • הגדרת צלילים או רטטים מותאמים אישית לשיחה

שיחות בבועות

אם ההתראה עומדת בדרישות של השיחה, הפלטפורמה מציגה אותה כבועה במגירת ההתראות.
איור 2: התראה שנפתחת כבועה ממגירת ההתראות.

החל מ-Android 11, אפשר להתחיל בועות מההתראות בקטע 'שיחות'. רק התראות עם קיצור דרך משויך יכולות להופיע בבועה. השיחות מוצגות בבועות באופן אוטומטי אם הן מסומנות כחשובות או אם הן מופעלות להצגה בבועות בלוח ההתראות.

מקשי קיצור לשיחות

קיצורי דרך לשיחות מופיעים במפעיל האפליקציות ולצד קיצורי דרך לשיתוף בעלי מחזור חיים ארוך בגיליון השיתוף.

הנחיות לשימוש ב-API

בקטע הזה מוסבר על ממשקי ה-API שמאפשרים להוסיף לאפליקציה תמיכה במרחב שמוצג על ידי המערכת, שבו אפשר לראות את האנשים והשיחות.

מקשי קיצור לשיחות

כדי להשתתף ביוזמה הזו שמתמקדת בשיחות, האפליקציות צריכות לספק למערכת קיצורי דרך בעלי מחזור חיים ארוך. מומלץ מאוד להשתמש בקיצורי דרך לשיתוף לטווח ארוך. אם יש צורך, אפשר להשתמש בקיצורי דרך דינמיים ב-Android 11, אבל יכול להיות שנוריד את האפשרות הזו בעתיד.

כדי לפרסם קיצור דרך לשיחה, קוראים לשיטות ShortcutManagerCompatsetDynamicShortcuts(),‏ addDynamicShortcuts() או pushDynamicShortcut() (שמנהלות אוטומטית את מגבלת קיצורי הדרך למפתח). קיצור הדרך הזה צריך להיות לטווח ארוך ולכלול נתונים של Person של אדם אחד או יותר, כדי לזהות את שאר המשתתפים בשיחה. מומלץ גם להגדיר את LocusIdCompat.

אם השיחה כבר לא קיימת, האפליקציה יכולה למחוק את קיצור הדרך באמצעות removeLongLivedShortcuts(). פעולה כזו גורמת למערכת למחוק את כל הנתונים שמשויכים לשיחה. אפשר להסיר קיצורי דרך, אבל אפליקציות לא צריכות להסיר קיצורי דרך שנשמרו במטמון אלא אם זה ממש הכרחי. סביר להניח שקיצור דרך נשמר במטמון כי המשתמש ביצע איתו אינטראקציה כדי לשנות את חוויית השימוש שלו, והסרת קיצור הדרך תבטל את השינויים האלה ותגרום לתסכול בקרב המשתמשים.

התראות על שיחות

התראה נחשבת כהתראה על שיחה אם מתקיימים התנאים הבאים:

  • ההתראה משתמשת ב-MessagingStyle.

  • (רק אם האפליקציה מטרגטת ל-Android 11 ואילך) ההתראה משויכת לקיצור דרך תקף לטווח ארוך לשיתוף דינמי או לשיתוף שנשמר במטמון. ההתראה יכולה להגדיר את השיוך הזה על ידי קריאה ל-setShortcutId() או ל-setShortcutInfo(). אם האפליקציה מכוונת ל-Android 10 או לגרסאות קודמות, ההתראה לא צריכה להיות משויכת לקיצור דרך, כמו שמוסבר בקטע אפשרויות חלופיות.

  • המשתמש לא הוריד את רמת השיחה מקטע השיחות דרך הגדרות ערוץ ההתראות בזמן הפרסום.

שימוש ב-LocusIdCompat

האינטליגנציה במכשיר קובעת באילו שיחות המשתמש צפוי להתעניין. בין האותות החשובים ביותר הם העדכניות והתדירות של סשנים של שיחות בכל שיחה. המערכת יודעת על אינטראקציות עם שיחה מקיצורי דרך במפעיל האפליקציות או מתוך התראה, אם הן מתויגות בצורה נכונה. עם זאת, המערכת לא יודעת על שיחות שהתנהלו רק באפליקציה, אלא אם האינטראקציות האלה מתויגות גם כן. לכן, מומלץ מאוד לצרף LocusIdCompat לקיצור הדרך ולהוסיף הערה לפעולה באפליקציה או למקטע באפליקציה עם LocusIdCompat המשויך. כדי שמערכת ההצעות תוכל לדרג את השיחה בצורה נכונה, וכדי שהמערכת תוכל להציג את השעה הנכונה של האינטראקציה האחרונה של המשתמש (כולל אינטראקציות בתוך האפליקציה) עם השיחה, צריך להשתמש ב-LocusIdCompat. אם משתמשים ב-setShortcutInfo() כדי לשייך את השיחה לקיצור דרך, מערכת השיחות מצרפת אוטומטית את LocusIdCompat המתאים.

דרישות לגבי מרחבי שיחה באפליקציות שמטרגטות ל-Android מגרסה 10 ומטה

אם אפליקציה לא מיועדת ל-Android 11, ההודעות שלה עדיין יכולות להופיע במרחב השיחה. עם זאת, האפליקציה עדיין צריכה לעמוד בדרישות מסוימות. בקטע הזה מתוארות הדרישות לאפליקציות האלה וההתנהגות של המערכת אם האפליקציה לא עומדת בדרישות.

הדרישה העיקרית להשתתפות במרחב ההודעות היא שהאפליקציה תטמיע התראות MessagingStyle, וההתראות יפנו אל קיצור דרך לשיתוף בעל מחזור חיים ארוך מתוך ההתראה שמתפרסמת בזמן פרסום ההתראה. התראות שעומדות בדרישות האלה מופיעות במרחב השיחה באופן הבא:

  • ההתראה מוצגת בסגנון שיחה
  • אם מיושם כפתור בועה
  • פונקציות ספציפיות לשיחה מוצעות בתוך הטקסט

אם ההתראה לא עומדת בדרישות האלה, הפלטפורמה משתמשת באפשרויות חלופיות כדי לעצב את ההתראה. אם ההתראה עומדת בדרישות של אחד מהמקרים האלה, היא תוצג במרחב השיחה עם עיצוב מיוחד. אם ההתראה לא עומדת בדרישות של אף אחת מהאפשרויות החלופיות, היא לא תוצג במרחב השיחה.

חזרה למצב קודם: אם נעשה שימוש ב-MessagingStyle אבל לא סופק קיצור דרך

אם האפליקציה מכוונת ל-Android 10 או לגרסאות קודמות וההתראה משתמשת ב-MessagingStyle אבל לא משייכת את ההודעה לקיצור דרך, ההתראה מוצגת במרחב השיחה באופן הבא:

  • ההתראה מוצגת בסגנון שיחה
  • לא מוצע כפתור בועה
  • אין פונקציות ספציפיות לשיחה שמוצגות בתוך השיחה

חזרה למצב קודם: אם לא נעשה שימוש ב-MessagingStyle, אבל האפליקציה היא אפליקציית הודעות מוכרת

אם ההתראה לא משתמשת ב-MessagingStyle, אבל הפלטפורמה מזהה את האפליקציה כאפליקציית הודעות, והפרמטר category של ההתראה מוגדר ל-msg, ההתראה מוצגת במרחב השיחה באופן הבא:

  • ההתראה מוצגת בסגנון הישן, לפני Android 11
  • לא מוצע כפתור בועה
  • אין פונקציות ספציפיות לשיחה שמוצגות בתוך השיחה

הנחיות, שימוש ובדיקה

בקטע הזה מפורטות הנחיות כלליות לשימוש בתכונות של שיחות ולבדיקה שלהן.

מתי כדאי להשתמש בשיחות?

ההתראות על שיחות וקיצורי הדרך שקשורים אליהן נועדו לשפר את חוויית המשתמש בשיחות בזמן אמת. לדוגמה, שיחות SMS, צ'אטים ושיחות טלפון הן שיחות בזמן אמת, והמשתמשים מצפים לתקשר במהירות. המשתמשים לא מצפים שזה יקרה עם אימיילים ופעילויות שלא קשורות לשיחות.

הוספנו למשתמשים את האפשרות להסיר שיחה מסוימת מהקטע 'שיחות' אם הם חושבים שהיא לא במקום הנכון.

שיטות מומלצות

כדי להגביר את המעורבות של המשתמשים ולעזור להם ליצור אינטראקציה עם אנשים ועם שיחות באפליקציה, מומלץ ליישם את השיטות המומלצות הבאות.

  • כדי לוודא שהשיחות שלא נענו יופיעו בחלונית השיחות לפי סדר העדיפות ויוצגו בצורה נכונה בווידג'ט ההמרה, צריך להגדיר את הפורמט של ההתראות על שיחות שלא נענו כ-conversations עם קטגוריה שמוגדרת כ-CATEGORY_MISSED_CALL.
  • כדאי לספק למשתמשים אווטרים באיכות גבוהה (104dp). אחרת, המערכת תשתמש בראשי התיבות של שם המשתמש, וחוויית השימוש תהיה פחות מעניינת.
  • אל cancel תשלחו התראה על שיחה לפני שהמשתמש ראה את ההודעה. דוגמה לכך היא ביטול התראה כשפותחים את האפליקציה בתצוגה שבה המשתמש לא יכול לראות את ההודעה או לטפל בה. אם המשתמש לא מקבל הזדמנות לקרוא את ההודעה או להגיב עליה, ההתראה והבועה שמשויכת אליה מוסרות, וכך אובד ההקשר של השיחה.
  • לספק URI של data שקשור למטא-נתונים של MIME שמשויכים להודעות, כדי שתוכלו לספק חוויה עשירה יותר בהתראות.
  • אפשר להשתמש ב-API‏ Android 12 status כדי להפוך את ווידג'טים של שיחות לאטרקטיביים יותר.
  • כדאי להשתמש בשיטות המומלצות הבאות לקיצורי דרך לשיחות.
    • פרסום קיצורי דרך לשיחות נכנסות ויוצאות באפליקציה שלא מפעילות התראות. לכל ההודעות שנכנסות ויוצאות באותה שיחה צריך להיות אותו מזהה קיצור דרך. אפשר להשתמש ב-pushDynamicShortcut() כדי לפרסם את קיצורי הדרך ולדווח על השימוש בהם.
    • כדי למנוע חיתוך לא מכוון של האווטאר של קיצור הדרך, צריך לספק AdaptiveIconDrawable לסמל של קיצור הדרך. פרטים נוספים זמינים במאמר בנושא הוספת תמונות של קיצורי דרך.
    • כדי לעזור למערכת לקדם את קיצור הדרך שלכם, מומלץ לפעול לפי ההנחיות לשיפור הדירוג. קיצור הדרך מדורג במקומות שונים במערכת, כולל גיליון השיתוף של Android אם מדובר בקיצור דרך לשיתוף.
    • מוודאים שמקשי הקיצור לשיחה intents פותחים ישירות את השיחה הרלוונטית.
    • אפשר להשתמש בספריות התאימות כדי להגדיר בקלות את קיצורי הדרך כקשורים ל-conversation.

בדיקה של התראות על שיחות וקיצורי דרך

לחיצה ארוכה על שיחה פותחת תפריט עם פעולות שקשורות לשיחה.
תרשים 3: כדי לוודא שההתראה על שיחה מוגדרת בצורה תקינה, לוחצים לחיצה ארוכה על ההתראה ובודקים שתפריט השיחה מופיע.

אם תפעלו לפי ההנחיות לשימוש במרחבי שיחה, השיחות יופיעו אוטומטית במרחב השיחה. כדי לוודא שהקיצור משולב בצורה תקינה, לוחצים לחיצה ארוכה על ההתראה. אם השילוב בוצע בצורה תקינה, בממשק המשתמש יוצגו פעולות שקשורות לשיחה. אם ההתראה לא מקושרת לקיצור דרך, בממשק המשתמש מוצג טקסט שמציין שהאפליקציה לא תומכת בתכונות השיחה.

קיצורי הדרך שנוספו מוצגים בלחיצה ארוכה על מרכז האפליקציות. חשוב לבדוק שהקיצורי דרך מובילים למקום הנכון באפליקציה.

קיצורי דרך לשיתוף שנוספו מוצגים בשורה של השיתוף הישיר בגיליון השיתוף כשמשתפים תוכן שאפשר לקבל באמצעות קיצור הדרך לשיתוף.

ווידג'טים של שיחות

שיחות שמוצגות בווידג'טים של שיחות
איור 1: שיחות שמוצגות בווידג'טים של שיחות.

ב-Android 12, התכונה 'ווידג'ט של שיחות' מבוססת על התכונה 'אנשים ושיחות' שהושקה ב-Android 11. התכונה החדשה מאפשרת לאפליקציות להציג את סטטוס השיחה בווידג'טים של שיחות.

ווידג'טים של שיחות מעודדים אינטראקציה של משתמשים בכך שהם מאפשרים להם לפתוח בקלות צ'אטים במסך הבית. הווידג'טים האלה הם קיצורי דרך משופרים שמאפשרים למשתמשים לחזור לשיחות שלהם ביעילות, תוך הצגת קטעים של סטטוס השיחה או מידע רלוונטי אחר.

אימות התמיכה בווידג'טים של שיחות באפליקציה

כדי לוודא שהאפליקציה תומכת בווידג'טים של שיחות ותזכורות, צריך לפחות שני מכשירי Android (שבכל אחד מהם פועלת מערכת Android בגרסה 12) ושני חשבונות משתמש (אחד בכל מכשיר) כדי להחליף הודעות. לצורך ההליך הזה, נתייחס לחשבונות כאל 'משתמש א' ו'משתמש ב'.

ממשק משתמש של כלי לבחירת ווידג'טים להוספת ווידג'ט שיחות ותזכורות חדש
איור 2: ממשק משתמש לבחירת ווידג'ט להוספת ווידג'ט שיחות ותזכורות חדש.

כך עושים את זה:

  1. במכשיר של משתמש א', לוחצים לחיצה ארוכה על מרכז האפליקציות. בבורר הווידג'טים, מקישים על הווידג'ט החדש לשיחה, כמו שמוצג באיור 2.
  2. גוררים את הווידג'ט למסך הבית. צריכה להיות אפשרות לבחור מתוך רשימה של שיחות פעילות או שיחות שהתנהלו לאחרונה באפליקציה של משתמש א'.
  3. עכשיו, במכשיר של משתמש ב', שולחים הודעת בדיקה למשתמש א'.
  4. במכשיר של משתמש א', מוודאים שהווידג'ט מתעדכן ומשקף את ההתראה על ההודעה ממשתמש ב'.
  5. אופציונלי: משתמש א' ומשתמש ב' יכולים להגדיר ערכי סטטוס שונים לשיחה כדי לוודא שהווידג'טים שלהם משקפים את הסטטוסים האלה בצורה נכונה. רשימה של ערכי הסטטוס זמינה במאמר ConversationStatus.