תכנון תמיכה בסוגים שונים של משקפי AI

מכשירי XR רלוונטיים
ההנחיות האלה יעזרו לכם ליצור חוויות למכשירי XR מהסוגים האלה.
משקפי AI

למשקפיים עם AI מסוגים שונים יש יכולות שונות. לדוגמה, בכל משקפי ה-AI יש חוויות אודיו באמצעות קול, אבל בחלק ממשקפי ה-AI יש גם מסך שבו האפליקציה יכולה להציג ממשקי משתמש שנבנו באמצעות Jetpack Compose Glimmer.

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

הסבר על מחזור החיים של פעילויות מתוכננות

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

איור 1. האירועים המרכזיים במחזור החיים של פעילויות מתוכננות.

למטה מפורטים האירועים המרכזיים, עם הסברים על אינטראקציות שספציפיות לפעילויות שמוקרנות במשקפי AI:

  • onCreate()
    • מופעל כשנוצרת הפעילות המתוכננת.
    • כאן מאתחלים את ממשק המשתמש של Glimmer ב-Jetpack Compose ואת הרכיבים האחרים של האפליקציה.
  • onStart()
    • הפונקציה מופעלת כשהפעילות המתוכננת מתחילה והמשתמש מודע לאפליקציה.
  • onResume()
    • הפונקציה נקראת כשהפעילות החזויה חוזרת למוקד. בזמן שהפעילות נמצאת במיקוד, אפשר ליצור איתה אינטראקציה והיא יכולה לצרוך קלט של משטח מגע או לחצן.
    • הפונקציה מופעלת כשמרכיבים את המשקפיים בחזרה (donned), אחרי שהם הוסרו מהראש (doffed).
  • onPause()
    • השיטה הזו מופעלת כשהפעילות המוקרנת מאבדת את המיקוד, אבל המשתמש עדיין מודע לאפליקציה. בזמן שהפעילות לא ממוקדת, אי אפשר ליצור איתה אינטראקציה והיא מפסיקה לצרוך קלט.
  • onStop()
    • הפונקציה נקראת כשהמערכת סבורה שהמשתמש כבר לא מודע לאפליקציה שלכם.
    • הפונקציה מופעלת כשהמשקפיים מוסרים מהראש (מוסרים).
  • onDestroy()
    • השיטה נקראת כשהפעילות המוקרנת עומדת להימחק. כשקוראים לפונקציה הזו, המערכת משחררת את כל המשאבים שקשורים לפעילות.

איך מצב התצוגה משפיע על מחזור החיים הצפוי של הפעילות

ב-Activity רגיל, מצב מחזור החיים משתנה כשהמסך של המכשיר נכבה, בדרך כלל עובר למצב onPause() או onStop(). לעומת זאת, מחזור החיים של הפעילות המוקרנת לא משתנה כשמסך המשקפיים עם ה-AI מופעל או מושבת. המשמעות של ההתנהגות הזו היא שהפעילות המוקרנת ממשיכה לפעול במצב Started או Resumed גם כשהמסך מושבת, וכך אפשר להמשיך ליהנות מהאודיו של האפליקציה ללא הפרעה.

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

הסבר על ההשפעה של המודעות של המשתמשים על הפעילות הצפויה

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

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

במצבים האלה, המשתמש יודע שאמצעי ה-AI פעילים ומגיבים, גם אם הוא לא מסתכל על מסך:

  • הסטטוס onStart() בפעילויות מתוכננות מציין שהפעילות פעילה.
  • המצב onResume() מציין שהפעילות אינטראקטיבית ויכולה לקבל קלט מלוח המגע, או שהיא מקבלת שיגור קלט ראשי.

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

הסבר על פעילויות חזויות והקשרים חזויים

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

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

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

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

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

הסבר על ממשקי API שמודעים למכשיר

חלק מממשקי ה-API הרגילים של Android משנים את החומרה של המכשיר שאליהם יש להם גישה, בהתאם לContext של הפעילות שקוראת להם. כשממשקי ה-API האלה מקבלים הקשר מוקרן, הם ניגשים לחומרה של משקפי ה-AI במקום לחומרה של מכשיר הטלפון המארח:

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