בדיקת מצלמה ITS מתקפלת

החל מ-Android 13, Camera ITS כולל תמיכה בבדיקות של מכשירים מתקפלים. במכשירים מתקפלים יש מצלמות זמינות, או האפשרות לא זמינה כי המכשיר במצב מקופל או לא מקופל.

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

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

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

בהתאם למצב המכשיר, מערכת ITS של המצלמה מסננת את מכשירי המצלמה שאינם זמינים, והם לא מופיעים ברשימת השילובים של המצלמה והסצנה.

בטבלה הבאה מתוארת ההתנהגות של בדיקת ITS במצלמה לכל כיוון של המצלמה.

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

תהליך הבדיקה

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

הגדרת המכשיר

מידע על ההגדרות זמין במאמר הגדרה.

הענקת גישה ל-API לבדיקה

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

כדי להעניק גישה, מריצים את פקודת ה-ADB הבאה. צריך להריץ את הפקודה הזו פעם אחת למכשיר אחד. אם מתקינים מחדש את CTS Verifier בגרסה אחרת, צריך להריץ שוב את הפקודה.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

קובץ התצורה

כדי לציין שהמכשיר הוא מכשיר מתקפל, צריך להוסיף את foldable_device גם בבדיקות tablet וגם ב-sensor_fusion בבדיקות של config.yml חדש. המצלמה ITS משתמשת בפרמטר הזה כדי לקבוע את camera_id ואת הסצנה למצבים של מצב מקופל ומצב לא מקופל.

דוגמה לקובץ config.yml של מכשיר מתקפל:

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

הרצת בדיקות

כדי להריץ את בדיקות ITS במכשיר מתקפל, מריצים את הפקודה run_all_tests.py. פרטים נוספים זמינים במאמר הפעלת בדיקות.

כשמריצים את המצלמה ITS במכשיר מתקפל, המצלמה הקדמית הראשית נבדקת בשני המצבים, מקופל ולא מקופל. אם המכשיר מקופל, התוצאות יוצגו באפשרות camera1_SCENE_NAME_folded באפליקציית CTS Verifier. בהתאם למצב המכשיר, מזהי מצלמה פיזיים מסוימים בחזית לא זמינים ולא נבדקים. צריך לבדוק את המצלמה האחורית רק במצב אחד, רצוי במצב מקופל, והתוצאות של המצלמה האחורית לא כוללות את הסיומת _folded.

כדי לוודא שהסצנות המקופלות מופעלות כשהמכשיר מקופל ובודקים במצב של ה-DUT המתקפל, מריצים את הפקודה הבאה.

adb shell cmd device_state state

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

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

המצלמה ITS מוסיפה גם את הסיומת folded לספרייה tmp נוצר לסצנות במצב מקופל.

פקודות לדוגמה

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

הוראה תיאור
python tools/run_all_tests.py הפעלת כל הסצנות.
python tools/run_all_tests.py scenes=scene0 הפעלת scene0. אם המכשיר מקופל והמשתמש בודק את המצלמה הקדמית הראשית, הסקריפט קובע את מצב המכשיר ומוסיף את הסיומת _folded לשם הסצנה. המשתמשים לא צריכים להוסיף את הסיומת כדי להריץ את הסצנות המקופלות.
python tests/scene0/ -c config.yml הרצת בדיקה ספציפית.