התאמה אישית של אפליקציית הטלוויזיה לדוגמה

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

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

הערה: ערוצים חיים הם ההטמעה של Google של טלוויזיה בשידור חי, שאפשר להשתמש בה כפי שהיא במכשירים עם שירותי Google. כדי להתאים אישית את הערוצים של שידורים חיים, מחליפים את הערך com.android.tv.* בערך com.google.android.tv.* בהוראות הבאות.

התאמה אישית של טלוויזיה בשידור חי

כדי להתאים אישית את הטלוויזיה בשידור חי, צריך להתקין במכשיר Android TV היעד חבילת התאמה אישית. חבילת ההתאמה האישית צריכה להיות אפליקציית מערכת מובנית עם ההרשאה com.android.tv.permission.CUSTOMIZE_TV_APP.

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

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

הגדרת מצב העברה קדימה או אחורה בזמן

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

כדי להגדיר העברה זמנית, מוסיפים את משאב המחרוזת trickplay_mode ומגדירים את הערך שלו לאחת מהאפשרויות הבאות:

  • enabled: הפעלת שינוי מועד השידור. זהו ערך ברירת המחדל כשלא מציינים אפשרויות.
  • disabled: השבתת העברת הזמן.
  • use_external_storage_only: הגדרת שינוי מועד השידור כך שישתמש באחסון חיצוני.
<string name="trickplay_mode">use_external_storage_only</string>
ממשק המשתמש של אמצעי הבקרה להפעלה מופעל אחרי שלוחצים על הלחצן המרכזי בלחצני החיצים.

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

התאמה אישית של האפשרויות בטלוויזיה

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

כדי לציין אפשרות בהתאמה אישית, מגדירים מסנן כוונה (intent-filter) שסורק את הקטגוריה com.android.tv.category.OPTIONS_ROW בפעילות. יצרן המכשיר מטמיע את התכונה בהתאמה אישית בפעילות. הפעילות תופעל אם לוחצים על האפשרות. האפשרות הזו תכלול את השם והסמל של הפעילות. כדי לספק את חוויית המשתמש הטובה ביותר, אפשרויות הטלוויזיה בהתאמה אישית צריכות להתאים לממשק המשתמש הקיים.

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

יצרני המכשירים יכולים גם להוסיף אפשרות מותאמת אישית לפני או אחרי האפשרויות הקיימות, על ידי הגדרת android:priority ב-AndroidManifest.xml. אפשרות עם ערך עדיפות מוגדר נמוך מ-100 תוצג לפני הפריטים הקיימים, ואפשרות עם ערך גבוה מ-100 תוצג אחרי הפריטים הקיימים. אפשרויות מותאמות אישית רבות (לפני או אחרי האפשרויות הקיימות) ממוינות לפי העדיפות שלהן בסדר עולה. אם לאפשרויות יש אותה עדיפות, הסדר ביניהן לא מוגדר.

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

<activity android:name=".PictureSettingsActivity"
    android:label="@string/activity_label_picture_settings"
          android:theme="@style/Theme.Panel">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_brightness"
        android:label="@string/option_label_brightness"
        android:priority="0">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.OPTIONS_ROW" />
    </intent-filter>
</activity>

דוגמה לשורה של אפשרויות טלוויזיה בהתאמה אישית

איור 2. דוגמה לשורה של אפשרויות טלוויזיה בהתאמה אישית (בהירות וחיסכון באנרגיה).

דוגמאות לאפשרויות טלוויזיה בהתאמה אישית.

איור 3. דוגמאות לאפשרויות טלוויזיה בהתאמה אישית.

טיפול בכמה אפשרויות בפעילות

אפשרות ממופה למסנן הכוונה של פעילות, ולהפך. מערכת Android לא מבדילה בין מסנני כוונה עם אותן קטגוריות ופעולות, ולכן פעילות מטפלת רק באפשרות אחת, גם אם הוגדרו בה כמה מסנני כוונה. כדי לטפל בכמה אפשרויות בפעילות, משתמשים ב-<activity-alias> ב-AndroidManifest.xml. בפעילות, משתמשים ב-getIntent().getComponent() כדי לזהות את האפשרות שנלחצה.

<activity-alias android:name=".AnyUniqueName"
    android:targetActivity=".PictureSettingsActivity">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_energy_saving"
        android:label="@string/option_label_energy_saving"
        android:priority="1">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.OPTIONS_ROW" />
    </intent-filter>
</activity-alias>

יצירת שורה בהתאמה אישית

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

כותרת השורה

מגדירים מחרוזת partner_row_title ב-res/values/strings.xml. הערך של המחרוזת משמש לכותרת של השורה בהתאמה אישית.

<string name="partner_row_title">Partner Row</string>

אפשרויות מותאמות אישית

כדי להוסיף אפשרויות בהתאמה אישית לשורה בהתאמה אישית, פועלים לפי התהליך להוספת אפשרויות לתפריט האפשרויות של הטלוויזיה, אבל משנים את שם הקטגוריה ל-com.android.tv.category.PARTNER_ROW.

<activity android:name=".ThreeDimensionalSettingDialogActivity"
    android:label="@string/activity_label_3d"
    android:theme="@android:style/Theme.Material.Light.Dialog">
    <intent-filter
        android:icon="@drawable/ic_tvoptions_3d"
        android:priority="0">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.android.tv.category.PARTNER_ROW" />
    </intent-filter>
</activity>

דוגמה לשורה אופציונלית בהתאמה אישית.

איור 4. דוגמה לשורה אופציונלית בהתאמה אישית.

דוגמה לתיבת דו-שיח של אפשרות בהתאמה אישית.

איור 5. דוגמה לתיבת דו-שיח של אפשרות בהתאמה אישית.