אנשים ושיחות

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

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

מרחב שיחה


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

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

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

שיחות בבועות

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

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

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

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

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

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

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

חלופה: אם נעשה שימוש ב-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.