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