ส่วนต่อไปนี้อธิบายวิธีทำงานกับ Hardware Abstraction Layer (HAL) เพื่อ ใช้การออกอากาศวิทยุ
อินเทอร์เฟซ HAL ของวิทยุกระจายเสียง
HAL วิทยุแบบกระจายเสียงมีโครงสร้างข้อมูลและอินเทอร์เฟซที่ระดับฮาร์ดแวร์เพื่อ ใช้การกระจายเสียงวิทยุ เช่น วิทยุ AM/FM และ DAB
อินเทอร์เฟซ HIDL 2.0 และ AIDL
HAL วิทยุออกอากาศใช้อินเทอร์เฟซที่อธิบายไว้ในส่วนต่อไปนี้
IAnnouncementListener
IAnnouncementListener คืออินเทอร์เฟซของ Callback สำหรับ Listener ประกาศ ซึ่ง
สามารถลงทะเบียนใน HAL ของวิทยุบรอดแคสต์เพื่อรับประกาศได้ อินเทอร์เฟซมีเมธอดต่อไปนี้
| IAnnouncementListener | ||
|---|---|---|
| Description: Called whenever the announcement list has changed. | ||
| HIDL 2.0 | oneway onListUpdated(vec<Announcement> announcements) |
|
| AIDL | oneway void onListUpdated(in Announcement[] announcements) |
|
ICloseHandle
ICloseHandle เป็นแฮนเดิลปิดทั่วไปเพื่อนำการเรียกกลับที่ไม่จำเป็นต้องมีอินเทอร์เฟซที่ใช้งานอยู่ออก
| ICloseHandle | ||
|---|---|---|
| คำอธิบาย: ปิดแฮนเดิล | ||
| HIDL 2.0 | close() |
|
| AIDL | void close() |
|
ITunerCallback
ITunerCallback คืออินเทอร์เฟซการเรียกกลับที่ HAL ของวิทยุกระจายเสียงเรียกใช้เพื่อ
ส่งข้อมูลอัปเดตไปยังบริการไคลเอ็นต์ HAL
| ITunerCallback | ||
|---|---|---|
| คำอธิบาย: เรียกใช้โดย HAL เมื่อการดำเนินการปรับ (ปรับ ค้นหา (ใน AIDL) หรือสแกน (ใน HIDL) และขั้นตอนสำเร็จ) ล้มเหลวแบบไม่พร้อมกัน | ||
| HIDL 2.0 | oneway onCurrentProgramInfoChanged(ProgramInfo info) |
|
| AIDL | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
| คำอธิบาย: เรียกใช้เมื่อการปรับ การค้นหา (ใน AIDL) หรือการสแกน (ใน HIDL) หรือการก้าวสำเร็จ | ||
| HIDL 2.0 | oneway onTuneFailed(Result result, ProgramSelector selector) |
|
| AIDL | void onTuneFailed(in Result result, in ProgramSelector selector) |
|
| คำอธิบาย: เรียกใช้เมื่อการปรับ การค้นหา (ใน AIDL) หรือการสแกน (ใน HIDL) หรือการก้าวสำเร็จ | ||
| HIDL 2.0 | oneway onCurrentProgramInfoChanged(ProgramInfo info) |
|
| AIDL | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
| คำอธิบาย: เรียกใช้เมื่ออัปเดตรายการโปรแกรม โดยขนาดของแต่ละก้อนควรจำกัดไว้ที่ 500 KiB | ||
| HIDL 2.0 | oneway onProgramListUpdated(ProgramListChunk chunk) |
|
| AIDL | void onProgramListUpdated(ProgramListChunk chunk) |
|
| คำอธิบาย: เรียกใช้เมื่อเชื่อมต่อหรือ ยกเลิกการเชื่อมต่อเสาอากาศ | ||
| HIDL 2.0 | oneway onAntennaStateChange(bool connected) |
|
| AIDL | void onCurrentProgramInfoChanged(in ProgramInfo info) |
|
Description: เรียกใช้เมื่อค่าพารามิเตอร์เฉพาะผู้ให้บริการ
ได้รับการอัปเดตภายในใน HAL (อย่าเรียกใช้หลังจากเรียกใช้
setParameters โดยไคลเอ็นต์ HAL) |
||
| HIDL 2.0 | oneway onParametersUpdated(vec<VendorKeyValue> parameters) |
|
| AIDL | void onParametersUpdated(in VendorKeyValue[] parameters) |
|
คำอธิบาย: ฟีเจอร์ใหม่ใน AIDL เรียกใช้เมื่อมีการอัปเดตแฟล็กการกำหนดค่าภายใน HAL (ไม่ควรเรียกใช้หลังจากที่ไคลเอ็นต์ HAL เรียกใช้ setConfigFlag) |
||
| HIDL 2.0 | ไม่สามารถใช้งาน | |
| AIDL | void onConfigFlagUpdated(in ConfigFlag flag, in boolean value) |
|
IBroadcastRadio
IBroadcastRadio เป็นอินเทอร์เฟซหลักสำหรับ HAL ของวิทยุกระจายเสียง ใน HIDL
2.0 HAL ให้ใช้อินเทอร์เฟซ ITunerSession กับจูนเนอร์เพื่อเรียกใช้การดำเนินการ อย่างไรก็ตาม โดยปกติแล้วจะมีจูนเนอร์ที่ใช้งานอยู่เพียง 1 ตัวในแต่ละครั้ง (หากอินสแตนซ์ HAL ของวิทยุแต่ละรายการมีชิปจูนเนอร์เพียง 1 ตัว)
ITunerSession ถูกนำออกจากอินเทอร์เฟซ AIDL และอินเทอร์เฟซของ ITunerSession ได้ย้ายไปอยู่ที่
IBroadcastRadio
| IBroadcastRadio | ||
|---|---|---|
| คำอธิบาย: รับคำอธิบายของโมดูลและความสามารถของโมดูล | ||
| HIDL 2.0 | getProperties() generates (Properties properties) |
|
| AIDL | Properties getProperties() |
|
| คำอธิบาย: ดึงข้อมูลการกำหนดค่าภูมิภาค AM/FM ปัจจุบันหรือที่เป็นไปได้ | ||
| HIDL 2.0 | getAmFmRegionConfig(bool full) generates (Result result, AmFmRegionConfig
config) |
|
| AIDL | AmFmRegionConfig getAmFmRegionConfig(bool full) |
|
| คำอธิบาย: ดึงข้อมูลการกำหนดค่าภูมิภาค DAB ปัจจุบัน | ||
| HIDL 2.0 | getDabRegionConfig() generates (Result result, vec<DabTableEntry>
config) |
|
| AIDL | DabTableEntry[] getDabRegionConfig() |
|
| คำอธิบาย: รับรูปภาพจากแคชโมดูลวิทยุ ใน AIDL ขนาดรูปภาพต้องน้อยกว่า 1 MB เนื่องจากมีขีดจำกัดที่แน่นอนในบัฟเฟอร์ธุรกรรมของ Binder | ||
| HIDL 2.0 | getImage(uint32_t id) generates (vec<uint8_t> image) |
|
| AIDL | byte[] getImage(in int id) |
|
| คำอธิบาย: ลงทะเบียน Listener ประกาศ | ||
| HIDL 2.0 | registerAnnouncementListener(vec<AnnouncementType>
enabled,IAnnouncementListener listener) generates (Result result, ICloseHandle
closeHandle) |
|
| AIDL | ICloseHandle registerAnnouncementListener(in IAnnouncementListener listener, in
AnnouncementType[] enabled) |
|
คำอธิบาย:
|
||
| HIDL 2.0 | openSession(ITunerCallback callback) สร้าง
(Result result, ITunerSession session) |
|
| AIDL | void setTunerCallback(in ITunerCallback callback) |
|
คำอธิบาย:
|
||
| HIDL 2.0 | close() |
|
| AIDL | unsetTunerCallback() |
|
| คำอธิบาย: เปิดรายการที่ระบุ | ||
| HIDL 2.0 | tune(ProgramSelector program) generates (Result result) |
|
| AIDL | void tune(in ProgramSelector program) |
|
คำอธิบาย: ค้นหารายการที่ถูกต้องถัดไปที่ออกอากาศ เพื่อไม่ให้เกิดความสับสนใน AIDL
scan จะเปลี่ยนชื่อเป็น seek
|
||
| HIDL 2.0 | scan(bool directionUp, bool skipSubChannel) generates (Result result) |
|
| AIDL | void seek(in boolean directionUp, in boolean skipSubChannel) |
|
| คำอธิบาย: ขั้นตอนในการค้นหาช่องที่อยู่ติดกัน ซึ่งอาจไม่มี รายการใดๆ ออกอากาศ | ||
| HIDL 2.0 | step(bool directionUp) generates (Result result) |
|
| AIDL | void step(in boolean directionUp) |
|
| คำอธิบาย: ยกเลิกการปรับ สแกน (ใน HIDL) หรือการค้นหา (ใน AIDL) หรือการดำเนินการแบบทีละขั้นที่รอดำเนินการ | ||
| HIDL 2.0 | cancel() |
|
| AIDL | void cancel() |
|
คำอธิบาย: ใช้ตัวกรองกับรายการโปรแกรมและ
เริ่มส่งการอัปเดตรายการโปรแกรมผ่าน
onProgramListUpdated การเรียกกลับ |
||
| HIDL 2.0 | startProgramListUpdates(ProgramFilter filter) generates (Result result) |
|
| AIDL | void startProgramListUpdates(in ProgramFilter filter) |
|
| คำอธิบาย: หยุดส่งข้อมูลอัปเดตรายการโปรแกรม | ||
| HIDL 2.0 | stopProgramListUpdates() |
|
| AIDL | void stopProgramListUpdates() |
|
| คำอธิบาย: ดึงการตั้งค่าปัจจุบันของแฟล็กการกำหนดค่าที่ระบุ | ||
| HIDL 2.0 | isConfigFlagSet(ConfigFlag flag) generates (Result result, bool value) |
|
| AIDL | boolean isConfigFlagSet(in ConfigFlag flag) |
|
| คำอธิบาย: ตั้งค่าแฟล็กการกำหนดค่าที่ระบุ | ||
| HIDL 2.0 | setConfigFlag(ConfigFlag flag, bool value) generates (Result result) |
|
| AIDL | void setConfigFlag(in ConfigFlag flag, boolean value) |
|
| คำอธิบาย: ตั้งค่าพารามิเตอร์เฉพาะผู้ให้บริการ | ||
| HIDL 2.0 | setParameters(vec<VendorKeyValue> parameters)
สร้าง (vec<VendorKeyValue> results) |
|
| AIDL | VendorKeyValue[] setParameters(in VendorKeyValue[] parameters) |
|
| คำอธิบาย: ดึงค่าพารามิเตอร์เฉพาะผู้ให้บริการ | ||
| HIDL 2.0 | getParameters(vec<string> keys) generates (vec<VendorKeyValue>
parameters) |
|
| AIDL | VendorKeyValue[] getParameters(in String[] keys) |
|
การชี้แจงเกี่ยวกับอินเทอร์เฟซ
ลักษณะการทำงานแบบอะซิงโครนัส
เนื่องจากการดำเนินการปรับแต่ละครั้ง (เช่น ปรับ สแกน (ใน HIDL) หรือค้นหา (ใน AIDL) และขั้น) อาจ ใช้เวลานานและไม่ควรบล็อกเธรดเป็นเวลานาน การดำเนินการจึงควร กำหนดเวลาการดำเนินการที่ใช้เวลานานให้เกิดขึ้นในภายหลัง และแสดงสถานะหรือผลลัพธ์อย่างรวดเร็ว โดยละเอียดแล้ว การดำเนินการแต่ละอย่างควรมีลักษณะดังนี้
- ยกเลิกการดำเนินการปรับแต่งที่รอดำเนินการทั้งหมด
- ตรวจสอบว่าสามารถดำเนินการตามข้อมูลที่ป้อนในวิธีการและสถานะของ จูนเนอร์ได้หรือไม่
- ตั้งเวลางานการปรับแต่ง แล้วส่งคืน
Result(ใน HIDL) หรือstatus(ใน AIDL) ทันที หากResultหรือstatusเป็นOKจะต้องเรียกใช้ Tuner CallbacktuneFailedหรือcurrentProgramInfoChangedเมื่อการปรับ ไม่สำเร็จ (เช่น เนื่องจากหมดเวลา) หรือเสร็จสมบูรณ์
ในทำนองเดียวกัน startProgramListUpdates ยังกำหนดเวลางานที่ใช้เวลานานในการ
อัปเดตรายการโปรแกรมให้เกิดขึ้นในภายหลังและแสดงสถานะหรือผลลัพธ์อย่างรวดเร็ว เมธอดนี้จะยกเลิกคำขออัปเดตที่รอดำเนินการก่อน จากนั้นจะกำหนดเวลางานอัปเดตและแสดงผลลัพธ์อย่างรวดเร็ว
ภาวะแข่งขัน
เนื่องจากลักษณะการทำงานแบบอะซิงโครนัสของการดำเนินการปรับ (เช่น ปรับ สแกน (ใน HIDL) หรือค้นหา
(ใน AIDL) และขั้น) จึงมีเงื่อนไขการแข่งขันระหว่างการยกเลิกการดำเนินการกับการดำเนินการปรับ
หากมีการเรียกใช้ cancel หลังจากที่ HAL ดําเนินการปรับเสร็จสมบูรณ์และก่อนที่
การเรียกกลับจะเสร็จสมบูรณ์ ระบบจะละเว้นการยกเลิกได้ และการเรียกกลับควรเสร็จสมบูรณ์และไคลเอ็นต์ HAL ควรได้รับ
ในทำนองเดียวกัน หากมีการเรียกใช้ stopProgramListUpdates หลังจากที่ HAL อัปเดตรายการโปรแกรมจนเสร็จสมบูรณ์และก่อนที่การเรียกกลับ onCurrentProgramInfoChanged จะเสร็จสมบูรณ์
ก็สามารถละเว้น stopProgramListUpdates และการเรียกกลับควรเสร็จสมบูรณ์
ขีดจำกัดขนาดข้อมูล
เนื่องจากบัฟเฟอร์ธุรกรรมของ Binder มีขีดจำกัดที่แน่นอน เราจึงชี้แจงขีดจำกัดของข้อมูลสำหรับเมธอดอินเทอร์เฟซบางอย่างที่ส่งข้อมูลซึ่งอาจมีขนาดใหญ่ใน AIDL HAL
getImageกำหนดให้รูปภาพที่ส่งกลับต้องมีขนาดน้อยกว่า 1 MBonProgramListUpdateกำหนดให้chunkแต่ละรายการมีขนาดไม่เกิน 500 KiB รายการโปรแกรมขนาดใหญ่จะต้องแยกออกเป็นหลายๆ ชิ้นโดยการติดตั้งใช้งาน HAL และส่งผ่าน การเรียกกลับหลายรายการ
การเปลี่ยนแปลงโครงสร้างข้อมูล AIDL HAL
นอกจากการเปลี่ยนแปลงในอินเทอร์เฟซแล้ว การเปลี่ยนแปลงเหล่านี้ยังใช้กับโครงสร้างข้อมูล ที่กำหนดไว้ใน HAL ของ AIDL สำหรับวิทยุออกอากาศ ซึ่งใช้ประโยชน์จาก AIDL
- นำการแจงนับ
Constantออกจาก AIDL และกำหนดเป็น const int ในIBroadcastRadioในขณะเดียวกัน เราได้เปลี่ยนชื่อANTENNA_DISCONNECTED_TIMEOUT_MSเป็นANTENNA_STATE_CHANGE_TIMEOUT_MSเพิ่ม const intTUNER_TIMEOUT_MSใหม่ แล้ว การดำเนินการปรับ ค้นหา และข้ามทั้งหมดต้องเสร็จสิ้นภายในเวลานี้ - นำ Enum
RDSและDeemphasisออกใน AIDL และกำหนดเป็น const int ในAmFmRegionConfigดังนั้น ทั้งfmDeemphasisและfmRdsในProgramInfoจึงประกาศเป็น int ซึ่งเป็นผลลัพธ์การคำนวณบิตของ แฟล็กที่เกี่ยวข้อง ในขณะเดียวกัน ระบบจะเปลี่ยนชื่อD50และD75เป็นDEEMPHASIS_D50และDEEMPHASIS_D75ตามลำดับ - ระบบจะนำ Enum
ProgramInfoFlagsออกใน AIDL และกำหนดเป็น const int ในProgramInfoโดยเพิ่มคำนำหน้าFLAG_ในทำนองเดียวกันinfoFlagsในProgramInfoจะประกาศเป็น int ซึ่งเป็นผลลัพธ์การคำนวณบิต ของแฟล็ก นอกจากนี้ เรายังเปลี่ยนชื่อTUNEDเป็นFLAG_TUNABLEเพื่ออธิบาย คำจำกัดความของสถานีที่สามารถปรับได้ให้ดียิ่งขึ้น - ใน
AmFmBandRangeระบบจะเปลี่ยนชื่อscanSpacingเป็นseekSpacingเนื่องจากมีการเปลี่ยนชื่อscanเป็นseekใน AIDL - เนื่องจากมีการนำแนวคิดของ union มาใช้ใน AIDL จึงไม่มีการใช้
MetadataKeyและMetadataที่กำหนดไว้ใน HIDL HAL อีกต่อไป มีการกำหนดสหภาพ AIDLMetadataใน AIDL HAL ค่า Enum แต่ละค่าที่อยู่ในMetadataKeyก่อนหน้านี้จะกลายเป็นฟิลด์ในMetadataที่มีประเภทเป็นสตริงหรือจำนวนเต็ม ทั้งนี้ขึ้นอยู่กับคำจำกัดความของค่าเหล่านั้น
รองรับวิทยุ DAB
ส่วนนี้อธิบายการรองรับวิทยุ DAB
รหัสระบุ
ประเภทตัวระบุหลักสำหรับวิทยุ DAB และ DMB ใน AIDL Broadcast Radio HAL คือ DAB_SID_EXT DAB_SID_EXT ใช้ตัวระบุบริการ (SID) แบบ 32 บิตเพื่อให้แสดง
SID ของวิทยุ DAB และ DMB ได้
นอกจากตัวระบุหลักแล้ว ระบบยังรองรับตัวระบุรอง เช่น DAB_ENSEMBLE และ
DAB_FREQUENCY_KHZ ด้วย ซึ่งเป็นสิ่งสำคัญเนื่องจากสถานี DAB หลายสถานีสามารถแชร์ DAB_SID_EXT ขณะที่มีค่า DAB_ENSEMBLE
หรือ DAB_FREQUENCY_KHZ ต่างกันได้ สถานีที่มีDAB_SID_EXTเดียวกันจะได้รับการอัปเดตพร้อมกันโดยใช้ ITunerCallback#onProgramListUpdated เพื่อให้การอัปเดตรายการโปรแกรมถูกต้อง จากนั้นการอัปเดตนี้จะส่งต่อไปยัง Broadcast
Radio Service และ Radio Manager และสุดท้ายจะส่งไปยังแอปวิทยุผ่าน
android.hardware.radio.ProgramList
ข้อมูลเมตา
ตารางต่อไปนี้แสดงข้อมูลเมตาที่รองรับซึ่งเฉพาะเจาะจงสำหรับ DAB ใน AIDL Broadcast Radio HAL
| ฟิลด์ข้อมูลเมตา | คำอธิบาย |
|---|---|
dabEnsembleName (รูปแบบย่อ: dabEnsembleNameShort) |
ชื่อกลุ่มสถานี DAB |
dabServiceName (ย่อมาจาก dabServiceNameShort) |
ชื่อบริการของสถานี DAB |
dabComponentName (ย่อมาจาก dabComponentNameShort) |
ชื่อคอมโพเนนต์ของสถานี DAB |
รองรับวิทยุดิจิทัลไฮบริด
ส่วนนี้จะอธิบายการรองรับวิทยุ HD
รหัสระบุ
HD_STATION_ID_EXT ทำหน้าที่เป็นตัวระบุหลักสำหรับสถานีวิทยุ HD นอกจากนี้ เรายังมีตัวระบุรอง เช่น HD_STATION_NAME และ
HD_STATION_LOCATION เพื่อช่วยระบุสถานีให้ดียิ่งขึ้น HD_STATION_LOCATION ซึ่ง
ให้ข้อมูลตำแหน่ง เปิดตัวใน Android 15
เปิดหรือปิดใช้สถานีวิทยุดิจิทัล
ตั้งแต่ Android 15 เป็นต้นไป คุณจะเปิดหรือปิดใช้สถานีวิทยุดิจิทัล (เช่น วิทยุ HD) ได้โดยการปรับ
ConfigFlags หากต้องการควบคุมการตั้งค่านี้สำหรับวิทยุ FM ให้ใช้แฟล็ก
FORCE_ANALOG_FM สำหรับวิทยุ AM ให้ใช้แฟล็ก FORCE_ANALOG_AM
การตั้งค่าฟีเจอร์เป็น false จะเปิดใช้วิทยุ HD ส่วนการตั้งค่าเป็น
true จะบังคับให้ใช้วิทยุ AM/FM แบบอนาล็อก
มีช่อง HD
ตั้งแต่ Android 15 เป็นต้นไป ช่อง HD ที่ปัจจุบันพร้อมให้บริการสำหรับสถานีวิทยุ HD จะแสดงด้วยบิตมาสก์ขนาด 8 บิต Metadata#hdSubChannelsAvailable
ใน ProgramInfo.metadata เช่น ค่าของบิตที่ 1 จากซ้ายแสดงว่า
สถานี HD นี้มีช่องย่อย HD2 หรือไม่
สถานะการรับสัญญาณ
ใน Android เวอร์ชัน 15 ขึ้นไป แอปวิทยุจะแสดงสถานะการรับสัญญาณของสถานีวิทยุ HD ให้ผู้ใช้เห็นได้ ซึ่งจะมีประโยชน์เนื่องจากการรับสัญญาณ HD ที่แรงอาจใช้เวลาสักครู่
ระบบใช้ ProgramInfo.infoFlags เพื่อติดตาม
สถานะและอัปเดตแอปวิทยุผ่าน
ITunerCallback#onCurrentProgramInfoChanged. เพื่อให้ข้อมูลนี้
สถานะจะแสดงใน ProgramInfo.infoFlags ดังนี้
- บิตที่ 6: ระบุว่าได้รับสัญญาณวิทยุ HD หรือไม่
- บิตที่ 7: แสดงว่าข้อมูลบริการข้อมูลสถานี (SIS) พร้อมใช้งานหรือไม่ SIS ให้ข้อมูลเพิ่มเติมเกี่ยวกับสถานีและรายการที่กำลังเล่น
- บิตที่ 8: บอกว่ามีเสียงดิจิทัล HD หรือไม่
ข้อมูลเมตา
ตารางต่อไปนี้แสดงข้อมูลเมตาของวิทยุ HD ที่รองรับสำหรับ Android เวอร์ชัน 15 ขึ้นไป
| ฟิลด์ข้อมูลเมตา | คำอธิบาย |
|---|---|
commentShortDescription |
คำอธิบายบริบทสั้นๆ ของความคิดเห็น |
commentActualText |
ข้อความของความคิดเห็น |
commercial |
โฆษณาวิทยุ |
ufids |
ตัวระบุไฟล์ที่ไม่ซ้ำกัน (UFID) ที่เชื่อมโยงกับเนื้อหา |
hdStationNameShort |
ชื่อย่อหรือชื่อย่อสากลของสถานีวิทยุ HD |
hdStationNameLong |
ชื่อแบบยาว สโลแกน หรือข้อความจากสถานีวิทยุ HD |
การแจ้งเตือนเหตุฉุกเฉิน
ใน Android 15 ขึ้นไป สถานีวิทยุ HD จะรองรับการแจ้งเตือนฉุกเฉินเพื่อ
แจ้งให้ผู้ใช้แอปวิทยุทราบถึงการแจ้งเตือนฉุกเฉินที่ส่งจากสถานีวิทยุ
การแจ้งเตือนฉุกเฉิน (Alert) เป็นไปตาม
มาตรฐาน Common Alerting Protocol (CAP) 1.2
และรองรับการแจ้งเตือนที่แสดงในตารางต่อไปนี้
| ข้อมูลการแจ้งเตือน | คำอธิบาย | ค่า enum ที่ใช้ได้ |
|---|---|---|
AlertStatus |
สถานะของข้อความแจ้งเตือน | ACTUAL, EXERCISE, TEST |
AlertMessageType |
ประเภทข้อความแจ้งเตือนเหตุฉุกเฉิน | ALERT, UPDATE, CANCEL |
AlertCategory |
หมวดหมู่ของเหตุการณ์เรื่องของการแจ้งเตือนเหตุฉุกเฉิน | GEO, MET, SAFETY, SECURITY,
RESCUE, FIRE, HEALTH, ENV,
TRANSPORT, INFRA, CBRNE, OTHER |
AlertUrgency |
ความเร่งด่วนของเหตุการณ์ที่เป็นหัวเรื่องของข้อความแจ้งเตือนเหตุฉุกเฉิน | IMMEDIATE, EXPECTED, FUTURE, PAST, UNKNOWN |
AlertSeverity |
ความรุนแรงของเหตุการณ์ที่เกี่ยวข้องของข้อความแจ้งเตือนเหตุฉุกเฉิน | EXTREME, SEVERE, MODERATE, MINOR, UNKNOWN |
AlertCertainty |
ความแน่นอนของเหตุการณ์ที่เกี่ยวข้องกับข้อความแจ้งเตือนเหตุฉุกเฉิน | OBSERVED, LIKELY, POSSIBLE, UNLIKELY, UNKNOWN |
Alert (ซึ่งมีข้อมูลในตาราง) ข้อความแจ้งเตือน
และ AlertArea เพื่อแสดงข้อมูลเกี่ยวกับการแจ้งเตือนปัจจุบัน
Alert เป็นฟิลด์ที่ไม่บังคับใน ProgramInfo เพื่อให้ส่งจาก
Broadcast Radio HAL ไปยังแอปวิทยุผ่านการเรียกกลับของจูนเนอร์สำหรับข้อมูล
โปรแกรมปัจจุบันและการอัปเดตรายการโปรแกรม