เฟรมเวิร์กอินพุตทีวี

ไอคอน HAL ของ Android TV

เฟรมเวิร์กอินพุต Android TV (TIF) ช่วยให้การส่งเนื้อหาสดไปยัง Android TV ง่ายขึ้น Android TIF มี API มาตรฐานสำหรับผู้ผลิตในการสร้างข้อบังคับอินพุตสำหรับควบคุม Android TV และเปิดใช้การค้นหาและคำแนะนำรายการทีวีสดผ่านข้อมูลเมตาที่เผยแพร่โดยอินพุตทีวี

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

คอมโพเนนต์

การใช้งานเฟรมเวิร์กอินพุต Android TV ประกอบด้วยเครื่องมือจัดการอินพุตทีวี TIF ใช้งานได้กับแอปทีวี ซึ่งเป็นแอประบบที่ไม่สามารถแทนที่ด้วยแอปของบุคคลที่สามเพื่อเข้าถึงช่องในตัวและช่องจากเครื่องรับสัญญาณ IP แอปทีวีจะสื่อสารกับโมดูลอินพุตทีวีที่ผู้ผลิตอุปกรณ์หรือบุคคลอื่นจัดหาให้ผ่านตัวจัดการอินพุตทีวี

เฟรมเวิร์กอินพุตทีวีประกอบด้วยรายการต่อไปนี้

  • ผู้ให้บริการทีวี (com.android.providers.tv.TvProvider): ฐานข้อมูลของช่อง รายการ และสิทธิ์ที่เกี่ยวข้อง
  • แอปทีวี (com.android.tv.TvActivity): แอปที่จัดการการโต้ตอบของผู้ใช้
  • ตัวจัดการอินพุตทีวี (android.media.tv.TvInputManager): อนุญาตให้อินพุตทีวีสื่อสารกับแอปทีวี
  • อินพุตทีวี: แอปที่แสดงตัวรับสัญญาณและพอร์ตอินพุตจริงหรือเสมือน
  • HAL ของอินพุตทีวี (tv_input โมดูล): การกําหนดฮาร์ดแวร์ที่อนุญาตให้อินพุตทีวีของระบบเข้าถึงฮาร์ดแวร์เฉพาะของทีวีเมื่อติดตั้งใช้งาน
  • การควบคุมโดยผู้ปกครอง: เทคโนโลยีที่อนุญาตให้บล็อกช่องและรายการ
  • HDMI-CEC: เทคโนโลยีที่ช่วยให้ควบคุมอุปกรณ์ต่างๆ ผ่าน HDMI จากระยะไกลได้
  • เฟรมเวิร์กตัวรับสัญญาณ: เฟรมเวิร์กสำหรับอินพุตทีวีในตัวรับสัญญาณ
  • MediaCas: เฟรมเวิร์กสำหรับการเข้าถึงแบบมีเงื่อนไข
  • ตัวจัดการทรัพยากรตัวรับสัญญาณ: บริการสำหรับจัดการทรัพยากรฮาร์ดแวร์สำหรับอินพุตทีวี, MediaCas และอินพุตตัวรับสัญญาณในตัว

คอมโพเนนต์เหล่านี้มีรายละเอียดอยู่ด้านล่าง ดูภาพรายละเอียดของสถาปัตยกรรมเฟรมเวิร์กอินพุต Android TV ได้ในแผนภาพต่อไปนี้

ภาพรวมสถาปัตยกรรม TIF ของ Android
รูปที่ 1 สถาปัตยกรรม Android TV Input Framework (TIF)

น้ำไหล

วิธีการทํางานของสถาปัตยกรรมมีดังนี้

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

สิทธิ์

  • เฉพาะsignatureOrSystem อินพุตทีวีและแอปทีวีเท่านั้นที่มีสิทธิ์เข้าถึงฐานข้อมูลของผู้ให้บริการทีวีอย่างเต็มรูปแบบและสามารถรับ KeyEvent ได้
  • เฉพาะอินพุตทีวีของระบบเท่านั้นที่เข้าถึง HAL ของอินพุตทีวีผ่านบริการจัดการอินพุตทีวีได้ อินพุตทีวีจะเข้าถึงแบบ 1:1 ผ่านเซสชันของเครื่องมือจัดการอินพุตทีวี
  • อินพุตทีวีของบุคคลที่สามมีการเข้าถึงฐานข้อมูลของผู้ให้บริการทีวีแบบล็อกแพ็กเกจ และสามารถอ่าน/เขียนได้เฉพาะแถวแพ็กเกจที่ตรงกันเท่านั้น
  • อินพุตทีวีของบุคคลที่สามจะแสดงเนื้อหาของตนเองหรือเนื้อหาจากอินพุตทีวีแบบส่งผ่านของผู้ผลิตอุปกรณ์ เช่น HDMI1 ก็ได้ แต่จะแสดงเนื้อหาจากอินพุตทีวีที่ไม่ใช่การส่งผ่านไม่ได้ เช่น โปรแกรมรับสัญญาณ IPTV หรือในตัว
  • สิทธิ์ TV_INPUT_HARDWARE สําหรับแอปอินพุตทีวีฮาร์ดแวร์ จะส่งสัญญาณให้บริการจัดการอินพุตทีวีแจ้งบริการอินพุตทีวีเมื่อบูตเพื่อเรียกบริการจัดการอินพุตทีวีและเพิ่มอินพุตทีวี สิทธิ์นี้ช่วยให้แอปอินพุตทีวีแบบฮาร์ดแวร์รองรับอินพุตทีวีหลายรายการต่อบริการอินพุตทีวี รวมถึงสามารถเพิ่มและนำอินพุตทีวีที่รองรับออกแบบไดนามิก

ผู้ให้บริการทีวี

ฐานข้อมูลของผู้ให้บริการทีวีจะจัดเก็บช่องและรายการจากอินพุตทีวี นอกจากนี้ ผู้ให้บริการทีวียังเผยแพร่และจัดการสิทธิ์ที่เกี่ยวข้องเพื่อให้ TV Input เห็นเฉพาะระเบียนของตนเอง ตัวอย่างเช่น อินพุตทีวีหนึ่งๆ จะดูได้เฉพาะช่องและรายการที่อินพุตนั้นให้ไว้ และไม่ได้รับอนุญาตให้เข้าถึงช่องและรายการของอินพุตทีวีอื่นๆ

ผู้ให้บริการทีวีจะแมป "ประเภทออกอากาศ" กับ "ประเภทตามหลักเกณฑ์" ภายใน ข้อมูลทีวีมีหน้าที่ป้อนข้อมูล "ประเภทการออกอากาศ" ด้วยค่าในมาตรฐานการออกอากาศพื้นฐาน และระบบจะป้อนข้อมูลประเภทที่เกี่ยวข้องที่ถูกต้องจาก android.provider.TvContract.Genres ลงในช่อง "ประเภทตามหลักเกณฑ์" โดยอัตโนมัติ ตัวอย่างเช่น เมื่อใช้มาตรฐานการออกอากาศ ATSC A/65 และรายการที่มีประเภท 0x25 (หมายถึง "กีฬา") อินพุตทีวีจะป้อนข้อมูล "ประเภทการออกอากาศ" ด้วยสตริง "กีฬา" และผู้ให้บริการทีวีจะป้อนข้อมูลในช่อง "ประเภทตามหลักเกณฑ์" ด้วยค่าที่แมป android.provider.TvContract.Genres.SPORTS

ดูภาพรายละเอียดของผู้ให้บริการทีวีได้ที่แผนภาพด้านล่าง

ผู้ให้บริการ Android TV
รูปที่ 2 ผู้ให้บริการ Android TV

มีเพียงแอปในพาร์ติชันระบบที่มีสิทธิ์เท่านั้นที่สามารถอ่านทั้งฐานข้อมูลของผู้ให้บริการทีวี

อินพุตทีวีแบบส่งผ่านจะไม่จัดเก็บช่องและรายการ

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

ตัวอย่างช่องฐานข้อมูล

ผู้ให้บริการทีวีรองรับ Structured Data ในตารางช่อง (android.provider.TvContract.Channels) และตารางรายการ (android.provider.TvContract.Programs) ตารางเหล่านี้จะสร้างขึ้นและเข้าถึงโดยอินพุตทีวีและแอประบบ เช่น แอปทีวี ตารางเหล่านี้มีช่อง 4 ประเภท ได้แก่

  • การแสดงผล: ช่องแสดงผลมีข้อมูลที่แอปอาจต้องการแสดงให้ผู้ใช้เห็น เช่น ชื่อ (COLUMN_DISPLAY_NAME) หรือหมายเลข (COLUMN_DISPLAY_NUMBER) ของช่อง หรือชื่อรายการที่กำลังรับชม
  • ข้อมูลเมตา: มีช่อง 3 ช่องสำหรับระบุเนื้อหาตามมาตรฐานที่เกี่ยวข้อง เช่น รหัสสตรีมการขนส่งของช่อง (COLUMN_TRANSPORT_STREAM_ID) รหัสเครือข่ายต้นทาง (COLUMN_ORIGINAL_NETWORK_ID) และรหัสบริการ (COLUMN_SERVICE_ID)
  • ข้อมูลภายใน: ฟิลด์สำหรับการใช้งานที่กำหนดเองของข้อมูลทีวี
    ช่องบางช่อง เช่น COLUMN_INTERNAL_PROVIDER_DATA เป็นแบบปรับแต่งได้ ซึ่งเป็นช่อง BLOB ที่อินพุตทีวีสามารถจัดเก็บข้อมูลเมตาที่ไม่เจาะจงเกี่ยวกับช่องหรือรายการได้
  • แจ้งว่าไม่เหมาะสม: ช่องควรถูกจำกัดไม่ให้แสดงในการค้นหา เรียกดู หรือดูหรือไม่ การตั้งค่านี้ทำได้ที่ระดับช่องเท่านั้น โปรแกรมทั้งหมดจะเป็นไปตามการตั้งค่าในช่อง
    • COLUMN_SEARCHABLE: การจำกัดการค้นหาจากบางช่องอาจเป็นสิ่งที่จําเป็นในบางภูมิภาค COLUMN_SEARCHABLE = 0 หมายความว่าช่องไม่ควรแสดงในผลการค้นหา
    • COLUMN_BROWSABLE: มองเห็นได้เฉพาะแอปพลิเคชันของระบบเท่านั้น การจํากัดไม่ให้แอปพลิเคชันเรียกดูแชแนล COLUMN_BROWSABLE = 0 หมายความว่าไม่ควรรวมช่องนั้นไว้ในรายการช่อง
    • COLUMN_LOCKED: มองเห็นได้เฉพาะแอปพลิเคชันของระบบเท่านั้น การจำกัดไม่ให้บัญชีที่ไม่ถูกต้องดูช่องได้โดยไม่ต้องป้อนรหัส PIN COLUMN_LOCKED = 1 หมายความว่าช่องควรได้รับการปกป้องโดยการควบคุมโดยผู้ปกครอง

ดูรายการช่องเพิ่มเติมได้ในส่วน android/frameworks/base/media/java/android/media/tv/TvContract.java

สิทธิ์และการควบคุมการเข้าถึง

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

  • แต่ละแถวมี PACKAGE_NAME ซึ่งเป็นแพ็กเกจ (แอป) ที่เป็นเจ้าของแถวนั้น ตรวจสอบใน Query, Insert, Update ผ่าน TvProvider.java อินพุตทีวีจะเข้าถึงได้เฉพาะข้อมูลที่เขียนไว้เท่านั้น และจะถูกแยกออกจากข้อมูลที่ได้จากอินพุตทีวีอื่นๆ
  • สิทธิ์ READ, WRITE ผ่าน AndroidManifest.xml (ต้องได้รับความยินยอมจากผู้ใช้) เพื่อระบุแชแนลที่ใช้ได้
  • เฉพาะแอป signatureOrSystem เท่านั้นที่จะได้รับสิทธิ์ ACCESS_ALL_EPG_DATA เพื่อเข้าถึงทั้งฐานข้อมูล

เครื่องมือจัดการอินพุตทีวี

ตัวจัดการอินพุตทีวีเป็น API ระบบส่วนกลางสำหรับเฟรมเวิร์กอินพุตของ Android TV โดยรวม โดยทำหน้าที่เป็นสื่อกลางในการโต้ตอบระหว่างแอปกับอินพุตทีวี รวมถึงมีฟังก์ชันการควบคุมโดยผู้ปกครอง เซสชันของเครื่องมือจัดการอินพุตทีวีต้องสร้างแบบ 1:1 กับอินพุตทีวี เครื่องมือจัดการอินพุตทีวีจะอนุญาตให้เข้าถึงอินพุตทีวีที่ติดตั้งไว้เพื่อให้แอปดำเนินการต่อไปนี้ได้

  • แสดงรายการอินพุตของทีวีและตรวจสอบสถานะ
  • สร้างเซสชันและจัดการผู้ฟัง

สำหรับเซสชัน แอปทีวีอาจปรับแต่งอินพุตทีวีเป็น URI ที่เพิ่มลงในฐานข้อมูลของผู้ให้บริการทีวีเท่านั้น ยกเว้นอินพุตทีวีที่ส่งผ่านซึ่งปรับแต่งได้โดยใช้ TvContract.buildChannelUriForPassthroughInput() อินพุตทีวีอาจตั้งค่าระดับเสียงไว้ด้วย อินพุตทีวีที่ผู้ผลิตอุปกรณ์ระบุและลงนาม (แอปลายเซ็น) หรือแอปอื่นๆ ที่ติดตั้งในพาร์ติชันของระบบจะมีสิทธิ์เข้าถึงฐานข้อมูลผู้ให้บริการทีวีทั้งหมด สิทธิ์เข้าถึงนี้สามารถใช้ในการสร้างแอปเพื่อเรียกดูและค้นหาช่องและรายการทีวีทั้งหมดที่มีให้บริการ

แอปอาจสร้างและลงทะเบียน TvInputCallback กับ android.media.tv.TvInputManager เพื่อให้ระบบเรียกกลับเมื่ออินพุตทีวีมีการเปลี่ยนแปลงสถานะ หรือเมื่อมีการเพิ่มหรือนำอินพุตทีวีออก ตัวอย่างเช่น แอปทีวีสามารถตอบสนองได้เมื่ออินพุตทีวีถูกตัดการเชื่อมต่อ โดยแสดงสถานะว่ายกเลิกการเชื่อมต่อและป้องกันไม่ให้เลือก

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

อินพุตของทีวี

อินพุตทีวีเป็นแอป Android ในแง่ที่มีไฟล์ AndroidManifest.xml และติดตั้งแล้ว (ผ่าน Play, ติดตั้งไว้ล่วงหน้า หรือโหลดจากแหล่งที่ไม่รู้จัก) Android TV รองรับแอประบบที่ติดตั้งไว้ล่วงหน้า แอปที่ลงนามโดยผู้ผลิตอุปกรณ์ และอินพุตทีวีของบุคคลที่สาม

อินพุตบางรายการ เช่น อินพุต HDMI หรืออินพุตของจูนเนอร์ในตัว จะต้องมาจากผู้ผลิตเท่านั้น เนื่องจากอินพุตเหล่านี้จะสื่อสารกับฮาร์ดแวร์ที่เกี่ยวข้องโดยตรง ส่วนแอปอื่นๆ เช่น IPTV, การย้ายตำแหน่งเสมือน และ STB ภายนอก บุคคลที่สามสามารถจัดหาแอปเหล่านี้เป็น APK ใน Google Play Store ได้ เมื่อดาวน์โหลดและติดตั้งแล้ว คุณจะเลือกอินพุตใหม่ภายในแอปทีวีได้

ตัวอย่างอินพุตการส่งผ่าน

อินพุตระบบ Android TV
รูปที่ 3 อินพุตระบบ Android TV

ในตัวอย่างนี้ อินพุตทีวีที่ผู้ผลิตอุปกรณ์ให้ไว้เชื่อถือได้และเข้าถึงผู้ให้บริการทีวีได้อย่างเต็มที่ ในฐานะอินพุตทีวีแบบส่งผ่าน อุปกรณ์นี้จะไม่ลงทะเบียนช่องหรือรายการใดๆ กับผู้ให้บริการทีวี หากต้องการรับ URI ที่ใช้อ้างอิงอินพุตการส่งผ่าน ให้ใช้android.media.tv.TvContractวิธียูทิลิตี buildChannelUriForPassthroughInput(String inputId) แอปทีวีจะสื่อสารกับตัวจัดการอินพุตทีวีเพื่อเข้าถึงอินพุต HDMI ของทีวี

ตัวอย่างตัวรับสัญญาณในตัว

อินพุตตัวรับสัญญาณในตัวของ Android TV
รูปที่ 4 อินพุตของจูนเนอร์ในตัวของ Android TV

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

ตัวอย่างอินพุตของบุคคลที่สาม

อินพุตของบุคคลที่สามใน Android TV
รูปที่ 5 อินพุตของบุคคลที่สามใน Android TV

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

อินพุตทีวี STB ภายนอกสามารถสื่อสารกับอินพุต HDMI ของทีวีผ่านตัวจัดการอินพุตทีวีและขอให้แสดงวิดีโอบน HDMI1 ดังนั้น อินพุตทีวีของ STB จึงควบคุมทีวีได้ขณะที่อินพุต HDMI ของทีวีที่ผู้ผลิตให้มาแสดงผลวิดีโอ

ตัวอย่างการแสดงภาพซ้อนภาพ (PIP)

KeyEvents ของ Android TV
รูปที่ 6 KeyEvents ของ Android TV

แผนภาพด้านบนแสดงวิธีที่ระบบส่งปุ่มบนรีโมตคอนโทรลไปยังอินพุตทีวีที่เจาะจงสำหรับการแสดงภาพซ้อนภาพ (PIP) การกดปุ่มเหล่านั้นจะได้รับการตีความโดยไดรเวอร์ฮาร์ดแวร์ที่ผู้ผลิตอุปกรณ์ให้มา โดยแปลงสแกนครื่องฮาร์ดแวร์เป็นคีย์โค้ด Android และส่งไปยังไปป์ไลน์อินพุตมาตรฐานของ Android ฟังก์ชัน InputReader และ InputDispatcher จะทำงานเป็น KeyEvents ซึ่งจะทริกเกอร์เหตุการณ์ในแอปทีวีหากอยู่ในโฟกัส

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

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

ตัวอย่างอินพุต MHEG-5

แผนภาพต่อไปนี้แสดงมุมมองโดยละเอียดมากขึ้นเกี่ยวกับวิธีกำหนดเส้นทาง KeyEvents ผ่าน TIF ของ Android

ตัวอย่างปุ่มสีแดงของ Android TV
รูปที่ 7 ตัวอย่างปุ่มสีแดงของ Android TV

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

ดูส่วนแอปออกอากาศเพื่อดูวิธีที่แอปออกอากาศโต้ตอบกับแอปทีวี

ในตัวอย่างนี้

  1. แอปทีวีอยู่ในโฟกัสและได้รับคีย์ทั้งหมด
  2. KeyEvents (เช่น ปุ่มสีแดง) ส่งไปยังทีวีที่ใช้งานอยู่ ป้อนเป็น InputEvents.
  3. อินพุตทีวีของระบบผสานรวมกับสแต็ก MHEG-5 และมีสิทธิ์RECEIVE_INPUT_EVENTของระบบ
  4. เมื่อได้รับรหัสคีย์เปิดใช้งาน (เช่น ปุ่มสีแดง) อินพุตทีวีจะเปิดใช้งานแอปออกอากาศ
  5. อินพุตทีวีใช้ KeyEvents เป็น InputEvents และแอปออกอากาศเป็นโฟกัสและจัดการ InputEvents จนกว่าจะปิด

หมายเหตุ: อินพุตทีวีของบุคคลที่สามจะไม่ได้รับคีย์

HAL อินพุตทีวี

HAL ของอินพุตทีวีช่วยในการพัฒนาอินพุตทีวีเพื่อเข้าถึงฮาร์ดแวร์เฉพาะของทีวี เช่นเดียวกับ HAL อื่นๆ ของ Android HAL อินพุตทีวี (tv_input) มีอยู่ในสตรีมซอร์สของ AOSP และผู้จำหน่ายจะเป็นผู้พัฒนาการใช้งาน

หมายเหตุ: ตั้งแต่ Android 14 เป็นต้นไป ระบบจะกำหนดอินเทอร์เฟซ HAL ของอินพุตทีวีโดยใช้ AIDL

แอปทีวี

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

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

แอปทีวีของระบบต้องจัดการงานต่อไปนี้เป็นอย่างน้อย

การตั้งค่าและการกำหนดค่า

  • ตรวจหาอินพุตทีวีโดยอัตโนมัติ
  • ให้อินพุตทีวีเริ่มการตั้งค่าช่อง
  • ควบคุมการตั้งค่าโดยผู้ปกครอง
  • แก้ไขช่อง

กำลังดู

  • เข้าถึงและไปยังส่วนต่างๆ ของช่องทีวีทั้งหมด
  • เข้าถึงแถบข้อมูลรายการทีวี
  • แสดงข้อมูลคู่มือโปรแกรมอิเล็กทรอนิกส์ (EPG)
  • รองรับแทร็กเสียงและคําบรรยายหลายรายการ
  • ระบุ PIN การควบคุมโดยผู้ปกครอง
  • อนุญาตให้วางซ้อน UI ของอินพุตทีวีสำหรับมาตรฐานทีวี (HbbTV ฯลฯ)
  • แสดงข้อมูลในผลการค้นหาสำหรับช่องและรายการทีวี
  • แสดงการ์ดการลิงก์แอป
  • รองรับ API การเปลี่ยนเวลา
  • จัดการฟังก์ชัน DVR และรองรับ API การบันทึกทีวี

ชุดฟีเจอร์นี้จะเพิ่มขึ้นตามเวอร์ชัน Android ใหม่ที่มีการขยาย TIF API ของแพลตฟอร์ม CTS Verifier จะระบุความครอบคลุมของการทดสอบความเข้ากันได้

การรองรับอินพุตทีวีของบุคคลที่สาม

Android TV มี API สําหรับนักพัฒนาแอปสําหรับอินพุตทีวีของบุคคลที่สาม ซึ่งช่วยให้แอปที่ติดตั้งไว้สามารถส่งช่องซอฟต์แวร์ไปยังประสบการณ์การรับชมรายการทีวีสดได้ แอปทีวีของระบบมีหน้าที่รับผิดชอบบางอย่างเกี่ยวกับการแสดงอินพุตและช่องทีวีของบุคคลที่สามต่อผู้ใช้ เพื่อให้การติดตั้งใช้งานอุปกรณ์ Android เข้ากันได้ แอปทีวีสดอ้างอิงมีการใช้งานที่เข้ากันได้ หากต้องการแทนที่แอปทีวีของระบบ ผู้ผลิตอุปกรณ์ต้องตรวจสอบว่าแอปของตัวเองมีความเข้ากันได้ในลักษณะเดียวกัน เพื่อให้เป็นไปตามความคาดหวังของนักพัฒนาแอปในอุปกรณ์ Android TV ทั้งหมด

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

อนุญาตให้มีความแตกต่างทางภาพระหว่างช่องในตัวกับช่องของบุคคลที่สามตามที่ระบุไว้ในส่วนแอปทีวีของ CDD ของ Android

ส่วนต่อไปนี้แสดงวิธีที่แอปพลิเคชันทีวีสดเป็นไปตามข้อกำหนดของ CDD

การตั้งค่าช่องใหม่

การเพิ่มอินพุต/ช่องของบุคคลที่สามใหม่เริ่มต้นจากผู้ใช้ค้นหาและติดตั้งอินพุตทีวีจาก App Store เช่น Google Play

อินพุตทีวีของบุคคลที่สามบางรายการจะเพิ่มช่องลงในฐานข้อมูล TvProvider โดยอัตโนมัติ แต่ส่วนใหญ่จะมีกิจกรรมการตั้งค่าเพื่อให้ผู้ใช้ตั้งค่าแชแนล ระบุรายละเอียดการเข้าสู่ระบบ และดำเนินการอื่นๆ ได้ แอปทีวีของระบบต้องช่วยให้ผู้ใช้เปิดใช้งานกิจกรรมการตั้งค่านี้ได้ ด้วยเหตุนี้ CDD จึงกำหนดให้อินพุตของบุคคลที่สามเป็นการไปยังส่วนต่างๆ ของแอปทีวีหลักให้น้อยที่สุด

แอปรายการทีวีสดอ้างอิงจะมีเมนูแหล่งที่มาของช่องสำหรับการเข้าถึงอินพุต

ไปที่การตั้งค่า
รูปที่ 8 ไปที่การตั้งค่า

ไปที่ "แหล่งที่มาของช่อง" ในการตั้งค่า
รูปที่ 9 ไปที่แหล่งที่มาของช่องในการตั้งค่า

เลือกแหล่งที่มาจากรายการ
รูปที่ 10 เลือกแหล่งที่มาจากรายการ

เพิ่มช่องจากแหล่งที่มา
รูปที่ 11 เพิ่มช่องจากแหล่งที่มา

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

การแจ้งเตือนที่ระบุว่ามีแหล่งที่มาของช่องใหม่
รูปที่ 12 การแจ้งเตือนที่ระบุว่ามีแหล่งที่มาของช่องใหม่

หากผู้ใช้ดำเนินการผ่านข้อความแจ้ง ผู้ใช้สามารถเลือกตั้งค่าแหล่งที่มาได้ดังที่แสดงในรูปที่ 10

ดูกำหนดบริการอินพุตทีวีเพื่อดูสิ่งที่นักพัฒนาแอปคาดหวังในส่วนนี้

ปรับแต่งรายการช่อง

ผู้ผลิตอุปกรณ์อาจให้บริการ UI เพื่อซ่อนบางช่องและอนุญาตให้ผู้ใช้จัดการ EPG ของตนเอง ฟีเจอร์นี้รวมอยู่ในรายการทีวีสด

เปิดรายการช่องในการตั้งค่า
รูปที่ 13 เปิดรายการช่องในการตั้งค่า

ปรับแต่งรายการช่อง
รูปที่ 14 ปรับแต่งรายการช่อง

EPG

นักพัฒนาอินพุตบุคคลที่สามต้องมั่นใจว่าผู้ใช้สามารถไปยังช่องของตนได้อย่างง่ายดายในระหว่างการใช้งานทั่วไปในอุปกรณ์ Android TV ที่เข้ากันได้ทั้งหมด

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

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

การเลื่อนเวลา

สำหรับอุปกรณ์ที่ใช้ Android 6.0 ขึ้นไป แอปทีวีต้องรองรับ API การเปลี่ยนเวลาของเฟรมเวิร์ก Android นอกจากนี้ ผู้ผลิตยังต้องใช้การควบคุมการเล่นในแอปทีวี ซึ่งช่วยให้ผู้ใช้หยุดชั่วคราว เล่นต่อ กรอกลับ และกรอไปข้างหน้าได้

สำหรับอินพุตทีวีที่รองรับการเปลี่ยนเวลา แอปทีวีต้องแสดงตัวควบคุมการเล่น

ตัวควบคุมการเล่น
รูปที่ 15 ตัวควบคุมการเล่น

DVR

สำหรับอุปกรณ์ที่ใช้ Android 7.0 ขึ้นไป แอปทีวีต้องรองรับ TV recording API ของเฟรมเวิร์ก Android เพื่อรองรับ แสดงรายการ และเล่นรายการที่บันทึกไว้

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

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

แอปทีวียังใช้ตรรกะที่ซับซ้อนมากขึ้นได้ด้วย เช่น เมื่อผู้ใช้ขอบันทึกตอนหนึ่ง แอปจะถามว่าผู้ใช้ต้องการบันทึกตอนที่เหลือทั้งหมดของซีรีส์ไหม

ดูภาพรวมการใช้งาน DVR ที่เป็นไปได้ใน Android TV ได้จากแผนภาพต่อไปนี้

การบันทึกวิดีโอดิจิทัลใน Android TV
รูปที่ 16 การบันทึกวิดีโอดิจิทัลใน Android TV

  1. บริการอินพุตทีวีจะบอกแอปทีวีว่ามีตัวรับสัญญาณกี่ตัวเพื่อให้แอปทีวีจัดการกับทรัพยากรที่อาจเกิดข้อขัดแย้งได้
  2. แอปทีวีได้รับคําขอที่ผู้ใช้เริ่มบันทึกรายการทีวี
  3. แอปทีวีจะจัดเก็บกำหนดการบันทึกไว้ในฐานข้อมูลภายใน
  4. เมื่อถึงเวลาบันทึก แอปทีวีจะส่งคําขอเพื่อปรับช่องที่เชื่อมโยงกับการบันทึก
  5. บริการอินพุตทีวีจะรับคําขอนี้ ตอบกลับว่ามีทรัพยากรที่เหมาะสมหรือไม่ และปรับช่อง
  6. จากนั้นแอปทีวีจะส่งคําขอเริ่มบันทึกไปยังตัวจัดการอินพุตทีวี
  7. บริการอินพุตทีวีจะรับคําขอนี้และเริ่มบันทึก
  8. บริการอินพุตทีวีจะจัดเก็บข้อมูลวิดีโอจริงไว้ในพื้นที่เก็บข้อมูล ซึ่งอาจเป็นพื้นที่เก็บข้อมูลภายนอกหรือพื้นที่เก็บข้อมูลระบบคลาวด์
  9. เมื่อถึงเวลาสิ้นสุดการบันทึก แอปทีวีจะส่งคําขอหยุดบันทึกไปยังตัวจัดการอินพุตทีวี
  10. เมื่อบริการอินพุตทีวีได้รับคำขอแล้ว ก็จะหยุดการบันทึกและเพิ่มข้อมูลเมตาที่เกี่ยวข้องไปยังผู้ให้บริการทีวีเพื่อให้แอปทีวีแสดงไฟล์บันทึกไปยังผู้ใช้ได้เมื่อมีการขอ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์การบันทึกในบริการอินพุตทีวีได้ที่บทความการบันทึกทีวีนี้

แหล่งข้อมูลที่มีประโยชน์

  • CDD ของ Android และ API สำหรับนักพัฒนาแอปที่บันทึกไว้เป็นข้อมูลอ้างอิงฉบับสมบูรณ์
  • CTS Verifier จะทดสอบ API เป็นส่วนหนึ่งของโปรแกรมการทดสอบความเข้ากันได้ การใช้การทดสอบนี้กับรายการทีวีสดอาจเป็นวิธีที่มีประโยชน์ในการดู EPG, การค้นหา, การควบคุมโดยผู้ปกครอง และข้อกำหนดอื่นๆ ในบริบทของอินพุตของบุคคลที่สาม
  • ดูกำหนดบริการอินพุตทีวีเพื่อดูความคาดหวังของนักพัฒนาแอปในด้านนี้

การควบคุมโดยผู้ปกครอง

การควบคุมโดยผู้ปกครองช่วยให้ผู้ใช้บล็อกช่องและรายการที่ไม่ต้องการได้ แต่สามารถข้ามการบล็อกได้โดยการป้อนรหัส PIN

แอปทีวี บริการจัดการอินพุตทีวี ผู้ให้บริการทีวี และอินพุตทีวีจะร่วมรับผิดชอบต่อฟังก์ชันการควบคุมโดยผู้ปกครอง

การควบคุมโดยผู้ปกครองเป็นข้อบังคับและอยู่ภายใต้ CTS Verifier

หลายประเทศได้กำหนดระบบการจัดประเภทที่อินพุตทีวีสามารถใช้ผ่าน TVContentRating API นอกจากนี้ อินพุตทีวียังลงทะเบียนระบบการจัดประเภทที่กำหนดเองได้ดังที่แสดงในการทดสอบ CTS Verifier ซึ่งจะแนะนำการจัดประเภท "จำลอง" สำหรับประเทศที่มีระบบการจัดประเภทมาตรฐาน เราขอแนะนำให้ผู้ผลิตอุปกรณ์รวมการควบคุมโดยผู้ปกครองของเฟรมเวิร์กอินพุตทีวีเข้ากับกลไกอื่นๆ ที่อาจรวมไว้ด้วย

ผู้ให้บริการโทรทัศน์

แถวช่องแต่ละแถวจะมีช่อง COLUMN_LOCKED ที่ใช้เพื่อล็อกไม่ให้ดูช่องที่เฉพาะเจาะจงได้โดยไม่ต้องป้อนรหัส PIN ช่องโปรแกรม COLUMN_CONTENT_RATINGมีไว้สำหรับแสดงผลและไม่ได้ใช้ในการบังคับใช้การควบคุมโดยผู้ปกครอง

เครื่องมือจัดการอินพุตทีวี

เครื่องมือจัดการอินพุตทีวีจะจัดเก็บ TvContentRating ที่ถูกบล็อกทั้งหมดและตอบสนองต่อ isRatingBlocked() เพื่อแนะนำว่าควรบล็อกเนื้อหาที่มีการจัดประเภทดังกล่าวหรือไม่

อินพุตทีวี

อินพุตทีวีจะตรวจสอบว่าควรบล็อกเนื้อหาปัจจุบันหรือไม่โดยเรียกใช้ isRatingBlocked() ในเครื่องมือจัดการอินพุตทีวีเมื่อการจัดประเภทของเนื้อหาที่แสดงมีการเปลี่ยนแปลง (เมื่อเปลี่ยนรายการหรือช่อง) หรือการตั้งค่าการควบคุมโดยผู้ปกครองมีการเปลี่ยนแปลง (ใน ACTION_BLOCKED_RATINGS_CHANGED และ ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED) หากควรบล็อกเนื้อหา อินพุตทีวีจะปิดใช้เสียงและวิดีโอ และแจ้งให้แอปทีวีทราบว่าเนื้อหาปัจจุบันถูกบล็อกโดยเรียกใช้ notifyContentBlocked(TvContentRating) หากเนื้อหาไม่ควรถูกบล็อก อินพุตทีวีจะเปิดใช้เสียงและวิดีโอ และแจ้งให้แอปทีวีทราบว่าเนื้อหาปัจจุบันได้รับอนุญาตโดยเรียกใช้ notifyContentAllowed()

แอปทีวี

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

แอปทีวีจะแสดง UI รหัส PIN เมื่ออินพุตทีวีแจ้งว่าเนื้อหาปัจจุบันถูกบล็อก หรือเมื่อผู้ใช้พยายามดูช่องที่บล็อก

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

แอปทีวีต้องประกาศสิทธิ์ android.permission.MODIFY_PARENTAL_CONTROLS เพื่อเปลี่ยนการตั้งค่าการควบคุมโดยผู้ปกครอง

เราขอแนะนำให้ผู้ผลิตอุปกรณ์ดำเนินการต่อไปนี้

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

HDMI-CEC

HDMI-CEC ช่วยให้อุปกรณ์หนึ่งควบคุมอุปกรณ์อีกเครื่องหนึ่งได้ จึงใช้รีโมตตัวเดียวควบคุมเครื่องใช้ไฟฟ้าหลายเครื่องในโฮมเธียเตอร์ได้ Android TV ใช้เพื่อเร่งการตั้งค่าและอนุญาตให้ควบคุมอินพุตทีวีต่างๆ จากระยะไกลผ่านแอปทีวีส่วนกลาง เช่น อาจสลับอินพุต เปิดหรือปิดอุปกรณ์ และอื่นๆ

TIF ของ Android ใช้ HDMI-CEC เป็นบริการควบคุม HDMI เพื่อให้ผู้ผลิตอุปกรณ์พัฒนาไดรเวอร์ระดับต่ำที่โต้ตอบกับ HAL ของ Android TV เวอร์ชันเบาได้โดยไม่ต้องใช้ตรรกะทางธุรกิจที่ซับซ้อนมากขึ้น ในการนําเสนอการใช้งานมาตรฐาน Android พยายามลดปัญหาความเข้ากันได้โดยการลดการใช้งานที่กระจัดกระจายและการสนับสนุนฟีเจอร์แบบเลือก บริการควบคุม HDMI ใช้บริการที่มีอยู่ของ Android ซึ่งรวมถึงอินพุตและการเปิด/ปิด

ซึ่งหมายความว่าการใช้งาน HDMI-CEC ที่มีอยู่จะต้องได้รับการออกแบบใหม่เพื่อให้ทำงานร่วมกับ TIF ของ Android ได้ เราขอแนะนำให้แพลตฟอร์มฮาร์ดแวร์มีไมโครโปรเซสเซอร์เพื่อรับ CEC Power On และคำสั่งอื่นๆ

การผสานรวม CEC ใน Android TV
รูปที่ 17 การผสานรวม CEC ใน Android TV

  1. โดยบัส CEC จะได้รับคำสั่งจากแหล่งที่มาที่ใช้งานอยู่ในปัจจุบันให้เปลี่ยนไปใช้แหล่งที่มาอื่น
  2. โปรแกรมควบคุมจะส่งคำสั่งไปยัง HAL ของ HDMI-CEC
  3. HAL จะแจ้ง ActiveSourceChangeListeners ทั้งหมด
  4. บริการควบคุม HDMI ได้รับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงแหล่งที่มาผ่าน ActiveSourceChangeListener
  5. บริการตัวจัดการอินพุตทีวีจะสร้าง Intent เพื่อให้แอปทีวีเปลี่ยนแหล่งที่มา
  6. จากนั้นแอปทีวีจะสร้างเซสชันตัวจัดการอินพุตทีวีสำหรับอินพุตทีวีที่กำลังเปลี่ยนไปใช้ และเรียกใช้ setMain ในเซสชันนั้น
  7. เซสชันตัวจัดการอินพุตทีวีจะส่งต่อข้อมูลนี้ไปยังอินพุต HDMI ของทีวี
  8. อินพุต HDMI ของทีวีขอตั้งค่าพื้นผิวย่านความถี่ข้าง
  9. บริการจัดการอินพุตทีวีจะสร้างคําสั่งการควบคุมการกำหนดเส้นทางที่เกี่ยวข้องกลับไปยังบริการควบคุม HDMI เมื่อตั้งค่าพื้นผิวแล้ว

หลักเกณฑ์การผสานรวมทีวี

แอปออกอากาศ

เนื่องจากแต่ละประเทศมีข้อกำหนดเฉพาะสำหรับการออกอากาศ (MHEG, Teletext, HbbTV และอื่นๆ) ผู้ผลิตจึงต้องจัดหาโซลูชันของตนเองสำหรับแอปออกอากาศ เช่น

  • MHEG: สแต็กแบบเนทีฟ
  • เทเลเท็กซ์: สแต็กเนทีฟ
  • HbbTV: โซลูชัน HbbTV จาก Vewd Software

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

ต่อไปนี้คือวิธีการทำงานของแอปออกอากาศและแอปทีวี

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

สําหรับการค้นหา/คําแนะนําด้วยเสียง แอปการออกอากาศอาจรองรับการค้นหาในแอปสําหรับการค้นหาด้วยเสียง