Telephony 小区广播 API更新时间:2026-05-22 21:10:11
Telephony 小区广播 API
Cell Broadcast Service(CBS)是蜂窝网络的小区广播能力,常用于接收政府紧急警报(地震、海啸)和运营商公告。
头文件:#include <tapi_cbs.h>
openvela 实现说明
- 开关控制:通过 set_cell_broadcast_power_on 启用/禁用小区广播接收
- 主题订阅:通过 set_cell_broadcast_topics 配置要接收的广播主题范围(按频道 ID)
- 事件回调:通过 tapi_cbs_register 注册事件回调,接收到的广播消息
- SIM 卡标识:所有接口带 slot_id,支持多 SIM 卡设备
- 相关协议:底层对应 3GPP TS 23.041 定义的 Cell Broadcast 流程
开关控制
tapi_sms_set_cell_broadcast_power_on
int tapi_sms_set_cell_broadcast_power_on(tapi_context context, int slot_id, bool enabled);
启用或禁用小区广播接收。
参数:
- context Telephony 上下文句柄。
- slot_id SIM 卡槽 ID。
- enabled true 表示启用,false 表示禁用。
返回值:
成功时返回 0,失败时返回负的错误码。
tapi_sms_get_cell_broadcast_power_on
int tapi_sms_get_cell_broadcast_power_on(tapi_context context, int slot_id, bool* enabled);
查询小区广播接收开关状态。
参数:
- context Telephony 上下文句柄。
- slot_id SIM 卡槽 ID。
- enabled 输出参数,返回当前开关状态。
返回值:
成功时返回 0,失败时返回负的错误码。
主题订阅
tapi_sms_set_cell_broadcast_topics
int tapi_sms_set_cell_broadcast_topics(tapi_context context, int slot_id, char* topics);
配置小区广播的主题范围(频道 ID 列表)。
参数:
- context Telephony 上下文句柄。
- slot_id SIM 卡槽 ID。
- topics 主题字符串,典型格式为逗号分隔的频道 ID 或范围(如 "4352-4356,919")。
返回值:
成功时返回 0,失败时返回负的错误码。
tapi_sms_get_cell_broadcast_topics
int tapi_sms_get_cell_broadcast_topics(tapi_context context, int slot_id, char** topics);
查询当前配置的小区广播主题。
参数:
- context Telephony 上下文句柄。
- slot_id SIM 卡槽 ID。
- topics 输出参数,返回主题字符串(调用方负责释放)。
返回值:
成功时返回 0,失败时返回负的错误码。
事件订阅
tapi_cbs_register
int tapi_cbs_register(tapi_context context, int slot_id, tapi_indication_msg msg,
void* user_obj, tapi_async_function p_handle);
注册小区广播事件回调。
参数:
- context Telephony 上下文句柄。
- slot_id SIM 卡槽 ID。
- msg 要监听的事件类型。
- user_obj 用户数据,将回传给回调函数。
- p_handle 事件回调函数。
返回值:
成功时返回事件订阅 watch ID,失败时返回负的错误码。
文档内容是否有帮助?
有帮助
无帮助