אנשים ושיחות

היוזמה 'אנשים ושיחות' היא יוזמה רב-שנתית של 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

האינטליגנציה במכשיר קובעת באילו שיחות המשתמש צפוי להתעניין. בין האותות החשובים ביותר אפשר למצוא את העדכניות והתדירות של סשנים של שיחות בכל שיחה. המערכת יודעת על אינטראקציות עם שיחה מקיצורי דרך ב-Launcher או מתוך התראה, אם הן מתויגות בצורה נכונה. עם זאת, המערכת לא יודעת על שיחות שהתנהלו באופן מלא באפליקציה, אלא אם האינטראקציות האלה מתויגות גם הן. לכן, מומלץ מאוד לצרף 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.