ปรับแต่งแอปทีวีอ้างอิง

รายการทีวีสดเป็นแอปทีวีอ้างอิงซึ่งออกแบบมาสำหรับอุปกรณ์ทีวี Android อย่างไรก็ตาม ผู้ผลิตอุปกรณ์อาจต้องการเพิ่มฟังก์ชันเฉพาะผลิตภัณฑ์เพิ่มเติม ซึ่งไม่ครอบคลุมในการใช้งานทีวีสดเริ่มต้น เช่น การปรับภาพ โหมดเกม หรือโหมด 3 มิติ รายการทีวีสดรองรับการปรับแต่งต่อไปนี้เพื่อรองรับฟังก์ชันหรือตัวเลือกเฉพาะอุปกรณ์

  • เปิดใช้โหมดการเปลี่ยนเวลา ซึ่งช่วยให้ผู้ใช้หยุดชั่วคราว กรอไปข้างหน้า และกรอกลับได้ การกำหนดค่าโหมดการเลื่อนเวลาเพื่อใช้ที่จัดเก็บข้อมูลภายนอกแทนที่จัดเก็บข้อมูลภายใน
  • การเพิ่มตัวเลือกลงในแถวตัวเลือกทีวี
  • การเพิ่มแถวที่กำหนดเองและเพิ่มตัวเลือกในแถวนั้น

หมายเหตุ: ช่องถ่ายทอดสดคือการใช้งานทีวีสดของ Google ซึ่งสามารถใช้งานได้ในอุปกรณ์ที่มีบริการของ Google หากต้องการปรับแต่งช่องถ่ายทอดสด ให้แทนที่ com.android.tv.* ด้วย com.google.android.tv.* ในวิธีการเหล่านี้

ปรับแต่งรายการทีวีสด

หากต้องการปรับแต่งรายการทีวีสด อุปกรณ์ Android TV เป้าหมายจะต้องติดตั้งแพ็กเกจการปรับแต่ง ซึ่งต้องเป็นแอประบบที่สร้างไว้ล่วงหน้าที่มีสิทธิ์ com.android.tv.permission.CUSTOMIZE_TV_APP

ทีวีสดจะค้นหาแพ็กเกจระบบที่มีสิทธิ์นี้ ตรวจสอบไฟล์ทรัพยากร และตรวจหากิจกรรมของแพ็กเกจที่มีการทำเครื่องหมายหมวดหมู่ที่เฉพาะเจาะจงเพื่อประมวลผลการปรับเปลี่ยนในแบบของคุณ

ประเด็นสำคัญ: ปรับแต่งรายการทีวีสดได้เพียง 1 แพ็กเกจเท่านั้น

กำหนดค่าโหมดเลื่อนเวลา

การเปลี่ยนเวลา (การหยุดชั่วคราว) ช่วยให้อุปกรณ์ทีวี Android สามารถหยุดชั่วคราว กรอกลับ และกรอไปข้างหน้าการเล่นของช่องได้ ในการใช้งานรายการทีวีสด คุณจะใช้การเลื่อนเวลาได้ผ่าน UI ตัวควบคุมการเล่น ระบบจะเปิดใช้การเลื่อนเวลาในรายการทีวีสดโดยค่าเริ่มต้น แต่คุณปิดได้ นอกจากนี้ คุณยังกำหนดค่าการเลื่อนเวลาให้ใช้พื้นที่เก็บข้อมูลภายนอกเท่านั้นได้ด้วย

หากต้องการกำหนดค่าการเปลี่ยนเวลา ให้เพิ่มทรัพยากรสตริง trickplay_mode และตั้งค่าเป็นตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

  • enabled: เปิดใช้การเลื่อนเวลา ค่านี้เป็นค่าเริ่มต้นเมื่อไม่มีตัวเลือก
  • disabled: ปิดใช้การเลื่อนเวลา
  • use_external_storage_only: กำหนดค่าการเลื่อนเวลาเพื่อใช้พื้นที่เก็บข้อมูลภายนอก
<string name="trickplay_mode">use_external_storage_only</string>
UI การควบคุมการเล่นจะเปิดใช้งานหลังจากกดปุ่ม D-pad ตรงกลาง

รูปที่ 1 UI การควบคุมการเล่นจะเปิดใช้งานหลังจากกดปุ่มตรงกลางของปุ่มบังคับทิศทาง

ปรับแต่งตัวเลือกทีวี

ผู้ผลิตอุปกรณ์สามารถเพิ่มตัวเลือกที่กำหนดเองสำหรับการตั้งค่าทีวีสดลงในเมนูตัวเลือกทีวีที่มีอยู่ เช่น เพิ่มทางลัดไปยังการตั้งค่าภาพและเสียง

หากต้องการระบุตัวเลือกที่กำหนดเอง ให้ประกาศ Intent Filter ที่กรองหมวดหมู่ com.android.tv.category.OPTIONS_ROW ในกิจกรรม ผู้ผลิตอุปกรณ์ติดตั้งใช้งานฟีเจอร์ที่กำหนดเองในกิจกรรม กิจกรรมจะเปิดขึ้นหากมีการคลิกตัวเลือก ระบบจะใช้ชื่อและไอคอนของกิจกรรมสำหรับตัวเลือกนี้ ตัวเลือกทีวีที่กําหนดเองควรตรงกับ UI ที่มีอยู่เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดีที่สุด

หมายเหตุ: กิจกรรมหนึ่งๆ จะจัดการได้เพียง 1 ตัวเลือกเท่านั้น เนื่องจาก Live TV ไม่สามารถแยกความแตกต่างระหว่างตัวกรอง Intent ในกิจกรรมที่มีหมวดหมู่เดียวกันได้เนื่องจากข้อจำกัดของ 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 ตัวอย่างตัวเลือกทีวีที่กำหนดเอง

จัดการหลายตัวเลือกในกิจกรรม

ตัวเลือกจะเชื่อมโยงกับตัวกรอง Intent ของกิจกรรม และในทางกลับกัน เนื่องจาก Android ไม่แยกความแตกต่างระหว่างตัวกรอง Intent ที่มีหมวดหมู่และการดำเนินการเดียวกัน กิจกรรมจึงจัดการได้เพียงตัวเลือกเดียว แม้ว่าจะมีการประกาศตัวกรอง Intent หลายรายการในนั้นก็ตาม หากต้องการจัดการตัวเลือกหลายรายการในกิจกรรม ให้ใช้ <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 ตัวอย่างกล่องโต้ตอบตัวเลือกที่กำหนดเอง