ส่วนต่อไปนี้อธิบายวิธีทำงานกับ 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 ไปยังแอปวิทยุผ่านการเรียกกลับของจูนเนอร์สำหรับข้อมูล
  โปรแกรมปัจจุบันและการอัปเดตรายการโปรแกรม