HAL วิทยุกระจายเสียง

ส่วนต่อไปนี้อธิบายวิธีทำงานกับ 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 HAL: เมื่อเปิดเซสชันจูนเนอร์ใหม่ ต้องปิดเซสชันเก่า
  • AIDL HAL: เนื่องจากไม่มีเซสชันจูนเนอร์ จึงต้องตั้งค่าเฉพาะการเรียกกลับของจูนเนอร์ หากมีอยู่แล้ว คุณควรยกเลิกการตั้งค่าการเรียกกลับเก่า
HIDL 2.0 openSession(ITunerCallback callback) สร้าง (Result result, ITunerSession session)
AIDL void setTunerCallback(in ITunerCallback callback)
คำอธิบาย:
  • HIDL HAL: การปิดเซสชันจูนเนอร์ต้องไม่ล้มเหลวและต้องออกเพียงครั้งเดียว
  • AIDL HAL: ไม่มีจูนเนอร์และต้องยกเลิกการตั้งค่าการเรียกกลับของจูนเนอร์เท่านั้น
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 Callback tuneFailed หรือ currentProgramInfoChanged เมื่อการปรับ ไม่สำเร็จ (เช่น เนื่องจากหมดเวลา) หรือเสร็จสมบูรณ์

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

ภาวะแข่งขัน

เนื่องจากลักษณะการทำงานแบบอะซิงโครนัสของการดำเนินการปรับ (เช่น ปรับ สแกน (ใน HIDL) หรือค้นหา (ใน AIDL) และขั้น) จึงมีเงื่อนไขการแข่งขันระหว่างการยกเลิกการดำเนินการกับการดำเนินการปรับ หากมีการเรียกใช้ cancel หลังจากที่ HAL ดําเนินการปรับเสร็จสมบูรณ์และก่อนที่ การเรียกกลับจะเสร็จสมบูรณ์ ระบบจะละเว้นการยกเลิกได้ และการเรียกกลับควรเสร็จสมบูรณ์และไคลเอ็นต์ HAL ควรได้รับ

ในทำนองเดียวกัน หากมีการเรียกใช้ stopProgramListUpdates หลังจากที่ HAL อัปเดตรายการโปรแกรมจนเสร็จสมบูรณ์และก่อนที่การเรียกกลับ onCurrentProgramInfoChanged จะเสร็จสมบูรณ์ ก็สามารถละเว้น stopProgramListUpdates และการเรียกกลับควรเสร็จสมบูรณ์

ขีดจำกัดขนาดข้อมูล

เนื่องจากบัฟเฟอร์ธุรกรรมของ Binder มีขีดจำกัดที่แน่นอน เราจึงชี้แจงขีดจำกัดของข้อมูลสำหรับเมธอดอินเทอร์เฟซบางอย่างที่ส่งข้อมูลซึ่งอาจมีขนาดใหญ่ใน AIDL HAL

  • getImage กำหนดให้รูปภาพที่ส่งกลับต้องมีขนาดน้อยกว่า 1 MB
  • onProgramListUpdate กำหนดให้ chunk แต่ละรายการมีขนาดไม่เกิน 500 KiB รายการโปรแกรมขนาดใหญ่จะต้องแยกออกเป็นหลายๆ ชิ้นโดยการติดตั้งใช้งาน HAL และส่งผ่าน การเรียกกลับหลายรายการ

การเปลี่ยนแปลงโครงสร้างข้อมูล AIDL HAL

นอกจากการเปลี่ยนแปลงในอินเทอร์เฟซแล้ว การเปลี่ยนแปลงเหล่านี้ยังใช้กับโครงสร้างข้อมูล ที่กำหนดไว้ใน HAL ของ AIDL สำหรับวิทยุออกอากาศ ซึ่งใช้ประโยชน์จาก AIDL

  • นำการแจงนับ Constant ออกจาก AIDL และกำหนดเป็น const int ใน IBroadcastRadio ในขณะเดียวกัน เราได้เปลี่ยนชื่อ ANTENNA_DISCONNECTED_TIMEOUT_MS เป็น ANTENNA_STATE_CHANGE_TIMEOUT_MS เพิ่ม const int TUNER_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 อีกต่อไป มีการกำหนดสหภาพ AIDL Metadata ใน 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 ไปยังแอปวิทยุผ่านการเรียกกลับของจูนเนอร์สำหรับข้อมูล โปรแกรมปัจจุบันและการอัปเดตรายการโปรแกรม