![ไอคอน Android TV HAL](https://source.android.google.cn/static/docs/devices/tv/images/ape_fwk_hal_tv.png?authuser=4&hl=th)
Android TV Input Framework (TIF) ช่วยลดความยุ่งยากในการส่งเนื้อหาสดไปยัง Android TV Android TIF มอบ API มาตรฐานสำหรับผู้ผลิตเพื่อสร้างโมดูลอินพุตสำหรับควบคุม Android TV และเปิดใช้งานการค้นหารายการทีวีสดและคำแนะนำผ่านข้อมูลเมตาที่เผยแพร่โดยอินพุตทีวี
กรอบการทำงานนี้ไม่ได้พยายามที่จะนำมาตรฐานโทรทัศน์หรือข้อกำหนดระดับภูมิภาคไปใช้ แต่ช่วยให้ผู้ผลิตอุปกรณ์สามารถปฏิบัติตามมาตรฐานการออกอากาศโทรทัศน์ดิจิทัลระดับภูมิภาคได้ง่ายขึ้นโดยไม่ต้องมีการนำกลับมาใช้ใหม่ เอกสารในส่วนนี้อาจเป็นประโยชน์สำหรับนักพัฒนาแอพบุคคลที่สามที่ต้องการสร้างอินพุตทีวีแบบกำหนดเอง
ส่วนประกอบ
การใช้งาน Android TV Input Framework รวมถึง TV Input Manager TIF ทำงานร่วมกับแอป TV ซึ่งเป็นแอประบบที่ไม่สามารถแทนที่ด้วยแอปของบุคคลที่สามได้ เพื่อเข้าถึงช่องในตัวและช่องรับสัญญาณ IP แอพ TV สื่อสารกับโมดูลอินพุตทีวีที่ผู้ผลิตอุปกรณ์หรือฝ่ายอื่น ๆ จัดหาให้ผ่าน TV Input Manager
กรอบการทำงานของอินพุตทีวีประกอบด้วย:
- ผู้ให้บริการทีวี (
com.android.providers.tv.TvProvider
): ฐานข้อมูลช่องรายการและการอนุญาตที่เกี่ยวข้อง - แอพ TV (
com.android.tv.TvActivity
): แอพที่จัดการการโต้ตอบของผู้ใช้ - ตัวจัดการอินพุตทีวี (
android.media.tv.TvInputManager
): อนุญาตให้อินพุตทีวีสื่อสารกับแอปทีวี - อินพุตทีวี: แอปที่แสดงเครื่องรับสัญญาณทางกายภาพหรือเสมือนและพอร์ตอินพุต
- อินพุตทีวี HAL (โมดูล
tv_input
): คำจำกัดความของฮาร์ดแวร์ที่อนุญาตให้อินพุตของระบบทีวีเข้าถึงฮาร์ดแวร์เฉพาะของทีวีเมื่อใช้งาน - Parental Control: เทคโนโลยีที่ช่วยให้สามารถบล็อกช่องและโปรแกรมได้
- HDMI-CEC: เทคโนโลยีที่ช่วยให้สามารถควบคุมอุปกรณ์ต่าง ๆ ผ่าน HDMI ได้จากระยะไกล
- Tuner Framework: เฟรมเวิร์กสำหรับอินพุตทีวีจูนเนอร์ในตัว
- MediaCas: กรอบงานสำหรับการเข้าถึงแบบมีเงื่อนไข
- Tuner Resource Manager: บริการจัดการทรัพยากรฮาร์ดแวร์สำหรับอินพุตทีวี, MediaCas และอินพุตจูนเนอร์ในตัว
ส่วนประกอบเหล่านี้มีรายละเอียดดังต่อไปนี้ ดูแผนภาพต่อไปนี้สำหรับมุมมองโดยละเอียดของสถาปัตยกรรม Android TV Input Framework
![ภาพรวมของสถาปัตยกรรม Android TIF](https://source.android.google.cn/static/docs/devices/tv/images/TIF_Overview.png?authuser=4&hl=th)
ไหล
นี่คือวิธีการใช้งานสถาปัตยกรรม:
- ผู้ใช้มองเห็นและโต้ตอบกับแอพ TV ซึ่งเป็นแอพระบบที่ไม่สามารถแทนที่ด้วยแอพของบุคคลที่สามได้
- แอพ TV จะแสดงเนื้อหา AV จากอินพุตทีวี
- แอป TV ไม่สามารถพูดคุยกับอินพุตของทีวีได้โดยตรง ตัวจัดการอินพุตทีวีระบุสถานะของอินพุตทีวีสำหรับแอพ TV ดู ตัวจัดการอินพุตทีวี ด้านล่างสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับข้อจำกัดเหล่านี้
สิทธิ์
- เฉพาะอินพุตทีวี
signatureOrSystem
และแอพทีวีเท่านั้นที่สามารถเข้าถึงฐานข้อมูลผู้ให้บริการทีวีได้อย่างสมบูรณ์และสามารถรับ KeyEvents ได้ - เฉพาะอินพุตทีวีของระบบเท่านั้นที่สามารถเข้าถึงอินพุตทีวี HAL ผ่านทางบริการ TV Input Manager อินพุตทีวีเข้าถึงได้แบบตัวต่อตัวผ่านเซสชัน TV Input Manager
- อินพุตทีวีของบริษัทอื่นมีการเข้าถึงฐานข้อมูลผู้ให้บริการทีวีแบบล็อคแพ็คเกจ และสามารถอ่าน/เขียนได้เฉพาะกับแถวแพ็คเกจที่ตรงกันเท่านั้น
- อินพุตทีวีของบริษัทอื่นสามารถแสดงเนื้อหาของตนเองหรือเนื้อหาจากอินพุตทีวีแบบพาสทรูของผู้ผลิตอุปกรณ์ เช่น HDMI1 ไม่สามารถแสดงเนื้อหาจากอินพุตทีวีที่ไม่ส่งผ่าน เช่น จูนเนอร์ในตัวหรือ IPTV
- สิทธิ์
TV_INPUT_HARDWARE
สำหรับแอปฮาร์ดแวร์อินพุตทีวี จะส่งสัญญาณให้บริการตัวจัดการอินพุตทีวีแจ้งเตือนบริการอินพุตทีวีขณะบูตเพื่อเรียกใช้บริการตัวจัดการอินพุตทีวีและเพิ่มอินพุตทีวี การอนุญาตนี้อนุญาตให้แอปฮาร์ดแวร์อินพุตทีวีรองรับอินพุตทีวีหลายรายการต่อบริการอินพุตทีวี รวมถึงสามารถเพิ่มและลบอินพุตทีวีที่รองรับแบบไดนามิกได้
ผู้ให้บริการโทรทัศน์
ฐานข้อมูลผู้ให้บริการทีวีจัดเก็บช่องและโปรแกรมจากอินพุตทีวี ผู้ให้บริการทีวียังเผยแพร่และจัดการสิทธิ์ที่เกี่ยวข้องเพื่อให้อินพุตทีวีสามารถดูได้เฉพาะบันทึกของตนเองเท่านั้น ตัวอย่างเช่น อินพุตทีวีเฉพาะสามารถดูได้เฉพาะช่องและโปรแกรมที่มีให้ และห้ามมิให้เข้าถึงช่องและโปรแกรมของอินพุตทีวีอื่นๆ
ผู้ให้บริการทีวีจับคู่ "ประเภทการออกอากาศ" กับ "ประเภทมาตรฐาน" ภายใน อินพุตทีวีมีหน้าที่รับผิดชอบในการเติม "ประเภทการออกอากาศ" ด้วยค่าในมาตรฐานการออกอากาศที่เกี่ยวข้อง และช่อง "ประเภทตามรูปแบบบัญญัติ" จะถูกเติมด้วยประเภทที่เกี่ยวข้องที่ถูกต้องจาก android.provider.TvContract.Genres
โดยอัตโนมัติ ตัวอย่างเช่น ด้วยมาตรฐานการออกอากาศ ATSC A/65 และรายการที่มีประเภท 0x25 (หมายถึง "กีฬา") อินพุตทีวีจะเติม "ประเภทการออกอากาศ" ด้วยสตริง "กีฬา" และผู้ให้บริการทีวีจะเติมข้อมูลในฟิลด์ "ประเภทที่เป็นที่ยอมรับ" ด้วย ค่าที่แมป android.provider.TvContract.Genres.SPORTS
ดูแผนภาพด้านล่างสำหรับมุมมองโดยละเอียดของผู้ให้บริการทีวี
![ผู้ให้บริการทีวี Android](https://source.android.google.cn/static/docs/devices/tv/images/TIF_TV_Provider.png?authuser=4&hl=th)
เฉพาะแอพในพาร์ติชั่นระบบที่มีสิทธิ์เท่านั้นที่สามารถอ่านฐานข้อมูลผู้ให้บริการทีวีทั้งหมดได้
อินพุตทีวีแบบพาสทรูไม่ได้จัดเก็บช่องและโปรแกรม
นอกเหนือจากฟิลด์มาตรฐานสำหรับช่องและโปรแกรมแล้ว ฐานข้อมูลผู้ให้บริการทีวียังมีฟิลด์ประเภท BLOB, COLUMN_INTERNAL_PROVIDER_DATA
ในแต่ละตารางที่อินพุตของทีวีอาจใช้เพื่อจัดเก็บข้อมูลที่กำหนดเอง ข้อมูล BLOB นั้นสามารถรวมข้อมูลที่กำหนดเอง เช่น ความถี่ของเครื่องรับที่เกี่ยวข้อง และอาจมีให้ในบัฟเฟอร์โปรโตคอลหรือรูปแบบอื่น ช่องที่ค้นหาได้มีไว้เพื่อทำให้ช่องบางช่องไม่สามารถใช้งานได้ในการค้นหา (เช่น เพื่อให้เป็นไปตามข้อกำหนดเฉพาะประเทศสำหรับการปกป้องเนื้อหา)
ตัวอย่างฟิลด์ฐานข้อมูล
ผู้ให้บริการทีวีรองรับข้อมูลที่มีโครงสร้างในช่อง ( android.provider.TvContract.Channels
) และตารางโปรแกรม ( android.provider.TvContract.Programs
) ตารางเหล่านี้สร้างขึ้นและเข้าถึงได้โดยอินพุตทีวีและแอประบบ เช่น แอปทีวี ตารางเหล่านี้มีฟิลด์สี่ประเภท:
- จอแสดงผล: ช่องแสดงผลประกอบด้วยข้อมูลที่แอปอาจต้องการให้ผู้ใช้มองเห็นได้ เช่น ชื่อช่อง (
COLUMN_DISPLAY_NAME
) หรือหมายเลข (COLUMN_DISPLAY_NUMBER
) หรือชื่อของโปรแกรมที่กำลังดูอยู่ - ข้อมูลเมตา: มีสามช่องสำหรับระบุเนื้อหาตามมาตรฐานที่เกี่ยวข้อง เช่น รหัสสตรีมการขนส่งของช่อง (
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
: มองเห็นได้เฉพาะแอปพลิเคชันระบบเท่านั้น การจำกัดช่องจากการรับชมโดยบัญชีที่ไม่ถูกต้องโดยไม่ต้องป้อนรหัส PINCOLUMN_LOCKED = 1
หมายความว่าช่องควรได้รับการปกป้องโดยการควบคุมโดยผู้ปกครอง
สำหรับรายการฟิลด์ที่ละเอียดยิ่งขึ้น โปรดดู android/frameworks/base/media/java/android/media/tv/TvContract.java
สิทธิ์และการควบคุมการเข้าถึง
ทุกคนที่มีสิทธิ์เข้าถึงแถวที่เกี่ยวข้องจะมองเห็นช่องทั้งหมดได้ ไม่มีฟิลด์ใดที่ผู้ใช้สามารถเข้าถึงได้โดยตรง พวกเขาเห็นเฉพาะสิ่งที่แอพ TV, แอพระบบ หรืออินพุตทีวีปรากฏขึ้น
- แต่ละแถวมี
PACKAGE_NAME
ซึ่งเป็นแพ็คเกจ (แอป) ที่เป็นเจ้าของแถวนั้น ตรวจสอบใน Query, Insert, Update ผ่าน TvProvider.java อินพุตทีวีอาจเข้าถึงเฉพาะข้อมูลที่เขียนไว้และถูกปิดล้อมจากข้อมูลที่ได้รับจากอินพุตทีวีอื่นๆ - สิทธิ์ในการอ่านและเขียนผ่าน AndroidManifest.xml (ต้องได้รับความยินยอมจากผู้ใช้) เพื่อกำหนดช่องทางที่มีอยู่
- เฉพาะแอป
signatureOrSystem
เท่านั้นที่สามารถรับสิทธิ์ACCESS_ALL_EPG_DATA
เพื่อเข้าถึงฐานข้อมูลทั้งหมด
ผู้จัดการอินพุตทีวี
TV Input Manager มอบ API ระบบส่วนกลางให้กับ Android TV Input Framework โดยรวม มันตัดสินการโต้ตอบระหว่างแอพและอินพุตทีวีและให้ฟังก์ชันการควบคุมโดยผู้ปกครอง เซสชัน TV Input Manager ต้องสร้างแบบหนึ่งต่อหนึ่งด้วยอินพุต TV ตัวจัดการอินพุตทีวีอนุญาตให้เข้าถึงอินพุตทีวีที่ติดตั้ง ดังนั้นแอพอาจ:
- แสดงรายการอินพุตทีวีและตรวจสอบสถานะ
- สร้างเซสชันและจัดการผู้ฟัง
สำหรับเซสชันต่างๆ แอป TV อาจปรับอินพุตทีวีเป็น URI ที่เพิ่มลงในฐานข้อมูลผู้ให้บริการทีวีเท่านั้น ยกเว้นอินพุตทีวีแบบพาสทรูซึ่งสามารถปรับได้โดยใช้ TvContract.buildChannelUriForPassthroughInput()
อินพุตทีวีอาจมีการตั้งค่าระดับเสียงไว้ด้วย อินพุตทีวีที่จัดทำและลงนามโดยผู้ผลิตอุปกรณ์ (แอปลายเซ็น) หรือแอปอื่นๆ ที่ติดตั้งในพาร์ติชันระบบจะสามารถเข้าถึงฐานข้อมูลของผู้ให้บริการทีวีทั้งหมด การเข้าถึงนี้สามารถใช้เพื่อสร้างแอปเพื่อเรียกดูและค้นหาช่องและโปรแกรมทีวีที่มีอยู่ทั้งหมด
แอปอาจสร้างและลงทะเบียน TvInputCallback
ด้วย android.media.tv.TvInputManager
เพื่อเรียกกลับเมื่อมีการเปลี่ยนแปลงสถานะของอินพุตทีวี หรือในการเพิ่มหรือลบอินพุตทีวี ตัวอย่างเช่น แอพ TV สามารถตอบสนองเมื่ออินพุตทีวีถูกตัดการเชื่อมต่อโดยการแสดงว่าไม่ได้เชื่อมต่อและป้องกันการเลือก
ตัวจัดการอินพุตทีวีสรุปการสื่อสารระหว่างแอปทีวีและอินพุตทีวี อินเทอร์เฟซมาตรฐานของ TV Input Manager และ TV Input ช่วยให้ผู้ผลิตอุปกรณ์หลายรายสามารถสร้างแอพ TV ของตนเองได้ ในขณะเดียวกันก็ช่วยให้ TV Input ของบริษัทอื่นทำงานได้บนแอพ TV ทั้งหมด
อินพุตทีวี
อินพุตทีวีคือแอป Android ในแง่ที่มี AndroidManifest.xml และติดตั้งไว้แล้ว (ผ่าน Play, ติดตั้งไว้ล่วงหน้า หรือไซด์โหลด) Android TV รองรับแอประบบที่ติดตั้งไว้ล่วงหน้า แอปที่ลงนามโดยผู้ผลิตอุปกรณ์ และอินพุตทีวีของบริษัทอื่น
อินพุตบางตัว เช่น อินพุต HDMI หรืออินพุตจูนเนอร์ในตัว สามารถจัดหาได้โดยผู้ผลิตเท่านั้น เนื่องจากอุปกรณ์ดังกล่าวจะสื่อสารกับฮาร์ดแวร์ที่เกี่ยวข้องโดยตรง ส่วนอื่นๆ เช่น IPTV, การย้ายสถานที่ และ STB ภายนอก สามารถจัดหาโดยบุคคลที่สามในรูปแบบ APK บน Google Play Store เมื่อดาวน์โหลดและติดตั้งแล้ว จะสามารถเลือกอินพุตใหม่ได้ภายในแอป TV
ตัวอย่างการป้อนข้อมูลแบบพาสทรู
![อินพุตระบบ Android TV](https://source.android.google.cn/static/docs/devices/tv/images/TIF_HDMI_TV_Input.png?authuser=4&hl=th)
ในตัวอย่างนี้ อินพุตทีวีที่ผู้ผลิตอุปกรณ์ให้มานั้นเชื่อถือได้และมีสิทธิ์เข้าถึงผู้ให้บริการทีวีได้อย่างเต็มที่ เนื่องจากเป็นอินพุตทีวีแบบพาสทรู จึงไม่ได้ลงทะเบียนช่องหรือรายการใดๆ กับผู้ให้บริการทีวี หากต้องการรับ URI ที่ใช้อ้างอิงอินพุตพาสทรู ให้ใช้เมธอดยูทิลิตี android.media.tv.TvContract
buildChannelUriForPassthroughInput(String inputId)
แอพ TV สื่อสารกับ TV Input Manager เพื่อเข้าถึงอินพุต HDMI TV
ตัวอย่างจูนเนอร์ในตัว
![Android TV อินพุตจูนเนอร์ในตัว](https://source.android.google.cn/static/docs/devices/tv/images/Built-in_Tuner_TV_Input.png?authuser=4&hl=th)
ในตัวอย่างนี้ อินพุตทีวีจูนเนอร์ในตัวที่ผู้ผลิตอุปกรณ์ให้มานั้นเชื่อถือได้และมีสิทธิ์เข้าถึงผู้ให้บริการทีวีได้อย่างเต็มที่
ตัวอย่างอินพุตของบุคคลที่สาม
![อินพุตจากบุคคลที่สามของ Android TV](https://source.android.google.cn/static/docs/devices/tv/images/Third-party_Input_HDMI.png?authuser=4&hl=th)
ในตัวอย่างนี้ อินพุต STB TV ภายนอกมาจากบุคคลที่สาม เนื่องจากอินพุตทีวีนั้นไม่สามารถเข้าถึงฟีดวิดีโอ HDMI ที่เข้ามาได้โดยตรง จึงต้องผ่านตัวจัดการอินพุตทีวี และใช้อินพุต HDMI TV ที่ผู้ผลิตอุปกรณ์ให้มา
ผ่านตัวจัดการอินพุตทีวี อินพุต STB TV ภายนอกสามารถพูดกับอินพุต HDMI TV และขอให้แสดงวิดีโอบน HDMI1 ดังนั้นอินพุต STB TV จึงสามารถควบคุมทีวีได้ในขณะที่อินพุต HDMI TV ที่ผู้ผลิตให้มาจะเรนเดอร์วิดีโอ
ตัวอย่างรูปภาพซ้อนภาพ (PIP)
![กิจกรรมสำคัญของ Android TV](https://source.android.google.cn/static/docs/devices/tv/images/TIF_PIP-PAP.png?authuser=4&hl=th)
แผนภาพด้านบนแสดงวิธีการส่งผ่านปุ่มบนรีโมทคอนโทรลไปยังอินพุตทีวีเฉพาะสำหรับการแสดงภาพซ้อนภาพ (PIP) การกดปุ่มเหล่านั้นได้รับการตีความโดยไดรเวอร์ฮาร์ดแวร์ที่ผู้ผลิตอุปกรณ์จัดทำ โดยแปลงรหัสสแกนฮาร์ดแวร์เป็นรหัสคีย์ Android และส่งต่อไปยัง ไปป์ไลน์อินพุต มาตรฐานของ Android ฟังก์ชั่น InputReader
และ InputDispatcher
เป็น KeyEvents สิ่งเหล่านี้จะกระตุ้นให้เกิดเหตุการณ์บนแอพ TV หากอยู่ในโฟกัส
เฉพาะอินพุตทีวีระบบเท่านั้นที่มีสิทธิ์รับ InputEvents
และเฉพาะในกรณีที่ได้รับอนุญาตจากระบบ RECEIVE_INPUT_EVENT
อินพุตทีวีมีหน้าที่กำหนดว่า InputEvents ใดที่จะใช้ และควรอนุญาตให้แอป TV จัดการคีย์ที่ไม่จำเป็นต้องใช้
แอพ TV มีหน้าที่รับผิดชอบในการทราบว่าอินพุต TV ของระบบใดที่ใช้งานอยู่ ซึ่งหมายถึงผู้ใช้เป็นผู้เลือก และเพื่อแยกแยะ KeyEvents
ขาเข้า และกำหนดเส้นทางไปยังเซสชัน TV Input Manager ที่ถูกต้อง โดยเรียก dispatchInputEvent()
เพื่อส่งต่อเหตุการณ์ไปยังอินพุต TV ที่เกี่ยวข้อง .
ตัวอย่างอินพุต MHEG-5
แผนภาพต่อไปนี้แสดงมุมมองโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการกำหนดเส้นทาง KeyEvents
ผ่าน Android TIF
![ตัวอย่างปุ่มสีแดงของ Android TV](https://source.android.google.cn/static/docs/devices/tv/images/TIF_MHEG5_app.png?authuser=4&hl=th)
โดยแสดงให้เห็นขั้นตอนของแอปปุ่มสีแดง ซึ่งแพร่หลายในยุโรปเพื่อให้ผู้ใช้เข้าถึงแอปแบบโต้ตอบบนโทรทัศน์ของตนได้ สามารถจัดส่งแอปผ่านสตรีมการขนส่งนี้ได้ เมื่อคลิกปุ่ม ผู้ใช้จะโต้ตอบกับแอปออกอากาศเหล่านี้ได้ ตัวอย่างเช่น คุณอาจใช้แอปออกอากาศเหล่านี้เพื่อเข้าถึงหน้าเว็บหรือคะแนนกีฬาที่เกี่ยวข้อง
ดูส่วน แอพออกอากาศ เพื่อเรียนรู้ว่าแอพออกอากาศโต้ตอบกับแอพ TV อย่างไร
ในตัวอย่างนี้:
- แอพ TV อยู่ในโฟกัสและรับกุญแจทั้งหมด
-
KeyEvents
(เช่น ปุ่มสีแดง) จะถูกส่งต่อไปยังอินพุตทีวีที่ใช้งานอยู่เป็นInputEvents.
- อินพุตทีวีของระบบทำงานร่วมกับสแต็ก MHEG-5 และได้รับอนุญาตจากระบบ
RECEIVE_INPUT_EVENT
- เมื่อได้รับรหัสเปิดใช้งาน (เช่น ปุ่มสีแดง) อินพุตทีวีจะเปิดใช้งานแอปการออกอากาศ
- อินพุตทีวีใช้
KeyEvents
เป็นInputEvents
และแอปการออกอากาศจะโฟกัสและจัดการInputEvents
จนกว่าจะถูกไล่ออก
หมายเหตุ : อินพุตทีวีของบริษัทอื่นไม่เคยได้รับคีย์
อินพุตทีวี HAL
อินพุตทีวี HAL ช่วยพัฒนาอินพุตทีวีเพื่อเข้าถึงฮาร์ดแวร์เฉพาะของทีวี เช่นเดียวกับ Android HAL อื่นๆ TV Input HAL ( tv_input
) มีอยู่ในซอร์สทรี AOSP และผู้จำหน่ายจะพัฒนาการใช้งาน
หมายเหตุ : ตั้งแต่ Android 14 เป็นต้นไป อินเทอร์เฟซ HAL อินพุตทีวีจะกำหนดโดยใช้ AIDL
แอพทีวี
แอพระบบ TV นำเสนอเนื้อหารายการทีวีสดให้กับผู้ใช้ แอปทีวีอ้างอิง (Live TV) มีให้พร้อมกับแพลตฟอร์ม Android ซึ่งสามารถใช้งานได้ตามที่เป็นอยู่ ปรับแต่ง ขยาย หรือแทนที่โดยผู้ผลิตอุปกรณ์ ซอร์สโค้ด มีอยู่ใน Android Open Source Project และคุณสามารถเริ่มต้นใช้งานได้ในบทความ แอป Reference TV
ผู้ผลิตอุปกรณ์อาจขยายแอปทีวีของตนเพื่อใช้งานผู้ผลิตอุปกรณ์หรือคุณสมบัติเฉพาะประเทศ อย่างไรก็ตาม สิ่งนี้ไม่อยู่ในขอบเขตของ TIF หรือแอปทีวีอ้างอิง
อย่างน้อยที่สุด แอพระบบ TV จะต้องจัดการงานต่อไปนี้:
การตั้งค่าและการกำหนดค่า
- ตรวจจับอินพุตทีวีอัตโนมัติ
- ให้อินพุตทีวีเริ่มต้นการตั้งค่าช่อง
- ควบคุมการตั้งค่าโดยผู้ปกครอง
- แก้ไขช่อง
กำลังดู
- เข้าถึงและนำทางช่องทีวีทั้งหมด
- เข้าถึงแถบข้อมูลรายการทีวี
- แสดงข้อมูลคู่มือการเขียนโปรแกรมอิเล็กทรอนิกส์ (EPG)
- รองรับแทร็กเสียงและคำบรรยายหลายแทร็ก
- ระบุ PIN การควบคุมโดยผู้ปกครอง
- อนุญาตการซ้อนทับ UI อินพุตทีวีสำหรับมาตรฐานทีวี (HbbTV ฯลฯ)
- เติมผลการค้นหาช่องทีวีและโปรแกรม
- แสดงการ์ดเชื่อมโยงแอป
- รองรับ API การเปลี่ยนเวลา
- จัดการฟังก์ชันการทำงานของ DVR และรองรับ API การบันทึกรายการทีวี
ชุดคุณลักษณะนี้จะเพิ่มขึ้นตามเวอร์ชัน Android ใหม่ที่มีการขยายแพลตฟอร์ม TIF API CTS Verifier ให้ความคุ้มครองการทดสอบความเข้ากันได้
รองรับอินพุตทีวีของบริษัทอื่น
Android TV มอบ API สำหรับนักพัฒนาสำหรับอินพุตทีวีของบริษัทอื่น ซึ่งช่วยให้แอปที่ติดตั้งสามารถส่งช่องซอฟต์แวร์เข้าสู่ประสบการณ์รายการทีวีสดได้ เพื่อให้แน่ใจถึงการใช้งานอุปกรณ์ Android ที่เข้ากันได้ แอป TV ระบบมีหน้าที่รับผิดชอบบางประการเกี่ยวกับการแสดงอินพุตและช่องทีวีของบุคคลที่สามให้กับผู้ใช้ แอพอ้างอิง Live TV ให้การใช้งานที่เข้ากันได้ หากเปลี่ยนแอปทีวีระบบ ผู้ผลิตอุปกรณ์จะต้องตรวจสอบให้แน่ใจว่าแอปของตนเองมีความเข้ากันได้ใกล้เคียงกัน เพื่อให้เป็นไปตามความคาดหวังของนักพัฒนาในอุปกรณ์ Android TV ทั้งหมด
แอปทีวีระบบจะต้องแสดงอินพุตของบุคคลที่สามควบคู่ไปกับบริการถ่ายทอดสดทางโทรทัศน์เริ่มต้นของอุปกรณ์ คำมั่นสัญญาของ API สำหรับนักพัฒนาคือผู้ใช้จะสามารถค้นหาช่อง (เมื่อติดตั้งแล้ว) ภายในประสบการณ์ทีวีมาตรฐานของตน
อนุญาตให้มองเห็นความแตกต่างระหว่างช่องในตัวและช่องของบุคคลที่สาม ตามที่กำหนดไว้ในส่วนแอปทีวีของ Android CDD
ส่วนต่อไปนี้แสดงให้เห็นว่าแอปพลิเคชัน Live TV ตอบสนองข้อกำหนด CDD ได้อย่างไร
การตั้งค่าช่องใหม่
การเพิ่มอินพุต/ช่องของบุคคลที่สามใหม่เริ่มต้นเมื่อผู้ใช้ค้นหาและติดตั้งอินพุตทีวีจากร้านค้าแอปพลิเคชัน เช่น Google Play
อินพุตทีวีของบริษัทอื่นบางรายการจะเพิ่มช่องลงในฐานข้อมูล TvProvider โดยอัตโนมัติ อย่างไรก็ตาม ส่วนใหญ่จะมีกิจกรรมการตั้งค่าเพื่อให้ผู้ใช้สามารถตั้งค่าช่องของตน ให้รายละเอียดการเข้าสู่ระบบ และการดำเนินการอื่น ๆ แอพ TV ระบบต้องแน่ใจว่าผู้ใช้สามารถเปิดใช้งานกิจกรรมการตั้งค่านี้ได้ ซึ่งเป็นสาเหตุที่ CDD กำหนดให้อินพุตของบุคคลที่สามมีการดำเนินการนำทางน้อยที่สุดจากแอพ TV หลัก
แอพอ้างอิง Live TV มีเมนูแหล่งที่มาของช่องสำหรับการเข้าถึงอินพุต
![ไปที่การตั้งค่า](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_settings.png?authuser=4&hl=th)
![ไปที่แหล่งที่มาของช่องในการตั้งค่า](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_channel_sources.png?authuser=4&hl=th)
![เลือกแหล่งที่มาของคุณจากรายการ](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_sources.png?authuser=4&hl=th)
![เพิ่มช่องจากแหล่งที่มาของคุณ](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_Add_channel.png?authuser=4&hl=th)
นอกจากนี้ การ์ดแจ้งเตือนจะแสดงที่ด้านบนของเมนูแอพ TV หลังจากติดตั้ง TvInput ใหม่แล้ว เพื่อนำผู้ใช้ไปยังการตั้งค่าโดยตรง:
![มีการแจ้งเตือนที่แสดงแหล่งที่มาของช่องใหม่](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_set_up_sources.png?authuser=4&hl=th)
หากผู้ใช้ดำเนินการผ่านการแจ้งเตือน ผู้ใช้สามารถเลือกที่จะตั้งค่าแหล่งที่มาของตนได้ดังแสดงในรูปที่ 10
ดู กำหนดบริการอินพุตทีวีของคุณ สำหรับความคาดหวังของนักพัฒนาในพื้นที่นี้
ปรับแต่งรายการช่อง
ผู้ผลิตอุปกรณ์อาจจัดเตรียม UI เพื่อซ่อนช่องบางช่องและทำให้ผู้ใช้สามารถจัดการ EPG ของตนเองได้ รายการถ่ายทอดสดทางโทรทัศน์มีสิ่งอำนวยความสะดวกนี้
![เปิดรายการช่องในการตั้งค่า](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_channel_list.png?authuser=4&hl=th)
![ปรับแต่งรายการช่องของคุณ](https://source.android.google.cn/static/docs/devices/tv/images/LiveChannels_customize_channel-list.png?authuser=4&hl=th)
อีพีจี
นักพัฒนาอินพุตบุคคลที่สามต้องมั่นใจว่าผู้ใช้สามารถนำทางไปยังช่องของตนได้อย่างง่ายดายระหว่างการใช้งานทั่วไปบนอุปกรณ์ Android TV ที่รองรับทั้งหมด
ต้องนำเสนอช่องจากอินพุตของบุคคลที่สามโดยเป็นส่วนหนึ่งของ EPG ประสบการณ์ถ่ายทอดสดทีวีมาตรฐานของอุปกรณ์ สามารถใช้การแยกภาพหรือหมวดหมู่แยกสำหรับช่องบุคคลที่สามได้ (ดูส่วนแอปทีวีของ Android CDD) สิ่งสำคัญคือผู้ใช้สามารถค้นหาช่องที่พวกเขาติดตั้งได้
ค้นหา
ผู้ผลิตต้องใช้แอป TV เพื่อรวมผลการค้นหาสำหรับคำขอการค้นหาทั่วโลก เพื่อให้มั่นใจว่าผู้ใช้จะได้รับประสบการณ์ที่ดีที่สุด Live TV มีการใช้งาน (ดูว่า รายการใดบ้างที่ให้ผลลัพธ์จากอินพุตของบุคคลที่สาม (จำเป็นสำหรับความเข้ากันได้ของแพลตฟอร์ม) รวมถึงอินพุตในตัว
เวลาเปลี่ยนไป
สำหรับอุปกรณ์ที่ใช้ Android 6.0 ขึ้นไป แอป TV จะต้องรองรับ API การเลื่อนเวลา ของเฟรมเวิร์ก Android นอกจากนี้ ผู้ผลิตยังต้องใช้การควบคุมการเล่นในแอพ TV ซึ่งช่วยให้ผู้ใช้สามารถหยุดชั่วคราว เล่นต่อ กรอกลับ และกรอการเล่นไปข้างหน้าอย่างรวดเร็ว
สำหรับอินพุตทีวีที่รองรับการเปลี่ยนเวลา แอป TV จำเป็นต้องแสดงส่วนควบคุมการเล่น
![การควบคุมการเล่น](https://source.android.google.cn/static/docs/devices/tv/images/TIF_timeshift.png?authuser=4&hl=th)
เครื่องบันทึกภาพ
สำหรับอุปกรณ์ที่ใช้ Android 7.0 ขึ้นไป แอป TV จะต้องรองรับ API การบันทึกทีวี ในเฟรมเวิร์ก Android เพื่อรองรับ แสดงรายการ และเล่นรายการที่บันทึกไว้
ช่วยให้ผู้ผลิตอุปกรณ์สามารถเสียบระบบย่อย DVR ของตนเข้ากับ TIF และลดความพยายามในการบูรณาการที่ใช้ในการเปิดใช้งานหรือรวมฟังก์ชันการทำงานของ DVR บนอุปกรณ์ทีวีได้อย่างมาก นอกจากนี้ยังช่วยให้บุคคลที่สามสามารถจัดหาระบบ DVR หลังการขายที่สามารถเสียบเข้ากับอุปกรณ์ Android TV ได้
นอกเหนือจากการบันทึกเนื้อหาสดแล้ว แอพ TV ยังจัดการกับความขัดแย้งของทรัพยากรอีกด้วย ตัวอย่างเช่น หากอุปกรณ์มีจูนเนอร์สองตัว ก็สามารถบันทึกสองโปรแกรมพร้อมกันได้ หากผู้ใช้ขอให้บันทึกสามรายการ แอป TV จะต้องจัดการกับข้อขัดแย้งและควรแสดงการแจ้งเตือนหรือขอให้ผู้ใช้กำหนดเวลาลำดับความสำคัญสำหรับคำขอเหล่านี้
แอพทีวียังสามารถใช้ตรรกะที่ซับซ้อนมากขึ้น เช่น ถามผู้ใช้ว่าต้องการบันทึกตอนในอนาคตทั้งหมดในซีรีส์หรือไม่ เมื่อพวกเขาขอบันทึกตอนเดียว
ดูแผนภาพต่อไปนี้เพื่อดูการใช้งาน DVR ที่เป็นไปได้ใน Android TV
![การบันทึกวิดีโอดิจิตอลใน Android TV](https://source.android.google.cn/static/docs/devices/tv/images/TV_Input_DVR.png?authuser=4&hl=th)
- บริการอินพุตทีวีจะบอกแอป TV ว่ามีจูนเนอร์จำนวนเท่าใดเพื่อให้แอป TV สามารถจัดการกับข้อขัดแย้งด้านทรัพยากรที่อาจเกิดขึ้นได้
- แอพ TV ได้รับคำขอที่เริ่มต้นโดยผู้ใช้เพื่อบันทึกรายการทีวี
- แอพ TV จะจัดเก็บตารางการบันทึกไว้ในฐานข้อมูลภายใน
- เมื่อถึงเวลาบันทึก แอพ TV จะส่งคำขอเพื่อปรับไปยังช่องที่เกี่ยวข้องกับการบันทึก
- บริการอินพุตทีวีได้รับคำขอนี้ ตอบกลับว่ามีทรัพยากรที่เหมาะสมหรือไม่ และปรับช่อง
- จากนั้นแอพ TV จะส่งคำขอเพื่อเริ่มการบันทึกไปยัง TV Input Manager
- บริการอินพุตทีวีได้รับคำขอนี้และเริ่มการบันทึก
- บริการอินพุตทีวีจะจัดเก็บข้อมูลวิดีโอจริงไว้ในที่จัดเก็บข้อมูล ซึ่งอาจเป็นที่จัดเก็บข้อมูลภายนอกหรือที่เก็บข้อมูลบนคลาวด์
- เมื่อถึงเวลาสิ้นสุดการบันทึก แอพ TV จะส่งคำขอหยุดการบันทึกไปยัง TV Input Manager
- เมื่อบริการอินพุตทีวีได้รับคำขอแล้ว จะหยุดการบันทึกและเพิ่มข้อมูลเมตาที่เกี่ยวข้องให้กับผู้ให้บริการทีวี เพื่อให้แอป TV สามารถแสดงการบันทึกต่อผู้ใช้เมื่อมีการร้องขอ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้คุณสมบัติการบันทึกในบริการอินพุตทีวีของคุณ โปรดดูบทความ การบันทึกรายการทีวี นี้
แหล่งข้อมูลที่เป็นประโยชน์
- CDD ของ Android และ API ของนักพัฒนาที่จัดทำเอกสารไว้เป็นข้อมูลอ้างอิงขั้นสุดท้าย
- CTS Verifier ออกกำลังกาย API โดยเป็นส่วนหนึ่งของโปรแกรมทดสอบความเข้ากันได้ การเรียกใช้สิ่งนี้กับรายการสดทางทีวีอาจเป็นวิธีที่มีประโยชน์ในการดู EPG การค้นหา การควบคุมโดยผู้ปกครอง และข้อกำหนดอื่นๆ ในบริบทของอินพุตจากบุคคลที่สาม
- ดู กำหนดบริการอินพุตทีวีของคุณ สำหรับความคาดหวังของนักพัฒนาในพื้นที่นี้
การควบคุมโดยผู้ปกครอง
การควบคุมโดยผู้ปกครองอนุญาตให้ผู้ใช้บล็อกช่องและโปรแกรมที่ไม่ต้องการ แต่ข้ามการบล็อกโดยการป้อนรหัส PIN
ความรับผิดชอบสำหรับฟังก์ชันการควบคุมโดยผู้ปกครองจะแชร์ระหว่างแอปทีวี บริการตัวจัดการอินพุตทีวี ผู้ให้บริการทีวี และอินพุตทีวี
จำเป็นต้องมีการควบคุมโดยผู้ปกครอง และอยู่ภายใต้ CTS Verifier
หลายประเทศได้กำหนดระบบการให้คะแนนที่อินพุตทีวีสามารถใช้ผ่าน TVContentRating API นอกจากนี้ อินพุตทีวียังสามารถลงทะเบียนระบบการให้คะแนนแบบกำหนดเองของตนเองได้ดังที่แสดงโดยการทดสอบ CTS Verifier ซึ่งแนะนำการให้คะแนน 'ปลอม' สำหรับประเทศที่มีระบบการจัดระดับมาตรฐาน ผู้ผลิตอุปกรณ์ควรรวม TV Input Framework Parental Control เข้ากับกลไกอื่นๆ ที่พวกเขาอาจรวมไว้
ผู้ให้บริการโทรทัศน์
แต่ละแถวของช่องมีฟิลด์ COLUMN_LOCKED
ซึ่งใช้เพื่อล็อคช่องเฉพาะไม่ให้รับชมโดยไม่ต้องป้อนรหัส PIN ฟิลด์โปรแกรม COLUMN_CONTENT_RATING
มีไว้สำหรับการแสดงผลและไม่ได้ใช้เพื่อบังคับใช้การควบคุมโดยผู้ปกครอง
ผู้จัดการอินพุตทีวี
TV Input Manager จะจัดเก็บ TvContentRating
ทุกรายการที่ถูกบล็อก และตอบสนองต่อ isRatingBlocked()
เพื่อแนะนำว่าควรบล็อกเนื้อหาตามระดับที่กำหนดหรือไม่
อินพุตทีวี
อินพุตทีวีตรวจสอบว่าเนื้อหาปัจจุบันควรถูกบล็อกโดยการเรียก isRatingBlocked()
บน TV Input Manager หรือไม่ เมื่อการจัดอันดับของเนื้อหาที่แสดงมีการเปลี่ยนแปลง (ในโปรแกรมหรือการเปลี่ยนช่อง) หรือการตั้งค่าการควบคุมโดยผู้ปกครองมีการเปลี่ยนแปลง (ใน ACTION_BLOCKED_RATINGS_CHANGED
และ ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED
) . หากเนื้อหาควรถูกบล็อก อินพุตของทีวีจะปิดเสียงและวิดีโอ และแจ้งให้แอป TV ทราบว่าเนื้อหาปัจจุบันถูกบล็อกโดยการเรียก notifyContentBlocked(TvContentRating)
หากเนื้อหาไม่ควรถูกบล็อก อินพุตของทีวีจะเปิดใช้เสียงและวิดีโอ และแจ้งให้แอป TV ทราบว่าเนื้อหาปัจจุบันได้รับอนุญาตโดยการเรียก notifyContentAllowed()
แอพทีวี
เพื่อให้เป็นไปตาม API การควบคุมโดยผู้ปกครอง และสร้างแพลตฟอร์มที่เข้ากันได้ แอป TV ระบบจำเป็นต้องจัดเตรียมวิธีให้ผู้ใช้จัดการการควบคุมโดยผู้ปกครอง รวมถึงการให้คะแนนแบบกำหนดเองที่ลงทะเบียนโดยแอปเฉพาะ
แอพ TV จะแสดง UI รหัส PIN เมื่อได้รับแจ้งจากอินพุตทีวีว่าเนื้อหาปัจจุบันถูกบล็อกหรือเมื่อผู้ใช้พยายามดูช่องที่ถูกบล็อก
แอพ TV ไม่ได้จัดเก็บการตั้งค่าการควบคุมโดยผู้ปกครองโดยตรง เมื่อผู้ใช้เปลี่ยนการตั้งค่าการควบคุมโดยผู้ปกครอง TvContentRating
ทุกรายการที่ถูกบล็อกจะถูกจัดเก็บโดย TV Input Manager และช่องที่ถูกบล็อกจะถูกจัดเก็บโดยผู้ให้บริการทีวี
แอป TV จำเป็นต้องประกาศการอนุญาต android.permission.MODIFY_PARENTAL_CONTROLS
เพื่อเปลี่ยนการตั้งค่าการควบคุมโดยผู้ปกครอง
ผู้ผลิตอุปกรณ์ได้รับการสนับสนุนให้:
- ออกกำลังกายการทดสอบการควบคุมโดยผู้ปกครองของ CTS Verifier กับแอปพลิเคชันอ้างอิง Live TV เพื่อสาธิตข้อกำหนดความเข้ากันได้
- ใช้แอป Live TV เป็นข้อมูลอ้างอิงสำหรับแอป TV ของตนเอง โดยเฉพาะอย่างยิ่ง โปรดดูที่ ContentRatingsManager และที่มา RatingSystemsFragment และวิธีจัดการการให้คะแนนแบบกำหนดเอง
HDMI-CEC
HDMI-CEC ช่วยให้อุปกรณ์เครื่องหนึ่งสามารถควบคุมอีกเครื่องหนึ่งได้ ดังนั้นจึงทำให้รีโมทเครื่องเดียวสามารถควบคุมอุปกรณ์หลายเครื่องในโฮมเธียเตอร์ได้ Android TV ใช้เพื่อเร่งความเร็วในการตั้งค่า และช่วยให้สามารถควบคุมอินพุตทีวีต่างๆ ได้จากระยะไกลผ่านแอปทีวีกลาง ตัวอย่างเช่น อาจสลับอินพุต เปิดหรือปิดอุปกรณ์ และอื่นๆ
Android TIF ใช้ HDMI-CEC เป็นบริการควบคุม HDMI เพื่อให้ผู้ผลิตอุปกรณ์จำเป็นต้องพัฒนาไดรเวอร์ระดับต่ำที่โต้ตอบกับ Android TV HAL ที่มีน้ำหนักเบา โดยข้ามตรรกะทางธุรกิจที่ซับซ้อนมากขึ้นไป ในการจัดให้มีการใช้งานมาตรฐาน Android พยายามที่จะบรรเทาปัญหาความเข้ากันได้โดยการลดการใช้งานที่กระจัดกระจายและการสนับสนุนคุณสมบัติที่เลือกสรร บริการควบคุม HDMI ใช้บริการ Android ที่มีอยู่ รวมถึงอินพุตและพลังงาน
ซึ่งหมายความว่าการใช้งาน HDMI-CEC ที่มีอยู่จะต้องได้รับการออกแบบใหม่เพื่อให้ทำงานร่วมกับ Android TIF ได้ เราขอแนะนำให้แพลตฟอร์มฮาร์ดแวร์ประกอบด้วยไมโครโปรเซสเซอร์เพื่อรับการเปิด CEC และคำสั่งอื่นๆ
![การรวม CEC บน Android TV](https://source.android.google.cn/static/docs/devices/tv/images/TV_App_CEC_integration.png?authuser=4&hl=th)
- บัส CEC ได้รับคำสั่งจากแหล่งที่ใช้งานอยู่ในปัจจุบันให้สลับไปยังแหล่งอื่น
- ไดรเวอร์ส่งคำสั่งไปยัง HDMI-CEC HAL
- HAL แจ้งเตือน
ActiveSourceChangeListeners
ทั้งหมด - บริการควบคุม HDMI จะได้รับแจ้งการเปลี่ยนแปลงแหล่งที่มาผ่าน
ActiveSourceChangeListener
- บริการตัวจัดการอินพุตทีวีสร้างเจตนาให้แอปทีวีเปลี่ยนแหล่งที่มา
- จากนั้นแอป TV จะสร้างเซสชัน TV Input Manager สำหรับอินพุต TV ที่จะเปลี่ยนไปและเรียก
setMain
ในเซสชันนั้น - เซสชันตัวจัดการอินพุตทีวีจะส่งข้อมูลนี้ไปยังอินพุต HDMI TV
- อินพุต HDMI TV ร้องขอให้ตั้งค่าพื้นผิวแถบด้านข้าง
- บริการตัวจัดการอินพุตทีวีจะสร้างคำสั่งควบคุมการกำหนดเส้นทางที่สอดคล้องกันกลับไปยังบริการควบคุม HDMI เมื่อตั้งค่าพื้นผิวแล้ว
แนวทางการรวมทีวี
แอปออกอากาศ
เนื่องจากแต่ละประเทศมีข้อกำหนดเฉพาะของการออกอากาศ (MHEG, Teletext, HbbTV และอื่นๆ) ผู้ผลิตจึงได้รับการคาดหวังให้จัดหาโซลูชันของตนเองสำหรับแอปการออกอากาศ เช่น:
- MHEG: สแต็กดั้งเดิม
- เทเลเท็กซ์: สแต็กดั้งเดิม
- HbbTV: โซลูชัน HbbTV จากซอฟต์แวร์ Vewd
ในรุ่น Android L นั้น Android TV คาดหวังให้ผู้ผลิตอุปกรณ์ใช้ผู้รวมระบบหรือโซลูชัน Android สำหรับกลุ่มทีวีระดับภูมิภาค ส่งต่อไปยังกลุ่มซอฟต์แวร์ทีวี หรือส่งรหัสคีย์ที่จำเป็นเพื่อโต้ตอบกับกลุ่มระบบเดิม
ต่อไปนี้เป็นวิธีโต้ตอบระหว่างแอปออกอากาศและแอปทีวี:
- แอพ TV อยู่ในโฟกัส รับกุญแจทั้งหมด
- แอพ TV จะส่งคีย์ (เช่น ปุ่มสีแดง) ไปยังอุปกรณ์อินพุตทีวี
- อุปกรณ์อินพุตทีวีจะทำงานร่วมกับสแต็คทีวีแบบเดิมภายใน
- เมื่อได้รับรหัสเปิดใช้งาน (เช่น ปุ่มสีแดง) อุปกรณ์อินพุตทีวีจะเปิดใช้งานแอพออกอากาศ
- แอพออกอากาศจะเน้นไปที่แอพ TV และจัดการการกระทำของผู้ใช้
สำหรับการค้นหาด้วยเสียง/คำแนะนำ แอปการออกอากาศอาจรองรับการค้นหาในแอปสำหรับการค้นหาด้วยเสียง