[ English | 简体中文 ]
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);
启用或禁用小区广播接收。
参数:
contextTelephony 上下文句柄。slot_idSIM 卡槽 ID。enabledtrue表示启用,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);
查询小区广播接收开关状态。
参数:
contextTelephony 上下文句柄。slot_idSIM 卡槽 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 列表)。
参数:
contextTelephony 上下文句柄。slot_idSIM 卡槽 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);
查询当前配置的小区广播主题。
参数:
contextTelephony 上下文句柄。slot_idSIM 卡槽 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);
注册小区广播事件回调。
参数:
contextTelephony 上下文句柄。slot_idSIM 卡槽 ID。msg要监听的事件类型。user_obj用户数据,将回传给回调函数。p_handle事件回调函数。
返回值:
成功时返回事件订阅 watch ID,失败时返回负的错误码。