search
暂无数据
Telephony 管理 API更新时间:2026-05-22 21:10:02

Telephony 管理 API

蜂窝通信管理接口,包括初始化、状态查询和事件注册。

头文件:#include <tapi_manager.h>

openvela 实现说明

  • 基于 D-Bus:TAPI Manager 通过 D-Bus 与 Telephony Core Stack(oFono)通信,对外以标准 C 接口封装
  • SIM 卡标识:管理器层面不直接涉及 SIM 卡槽选择,涉及特定卡槽的操作在 tapi_sim 等子模块中使用 slot_id 参数
  • 客户端句柄:通过 tapi_open 获取 tapi_context,所有后续调用均以该 context 作为第一个参数
  • 事件订阅:通过 tapi_register 注册事件回调,tapi_unregister 取消订阅
  • 同步 vs 异步:多数接口是异步的(带回调),部分提供 *_sync 变体用于简单场景

客户端连接管理

tapi_open

tapi_context tapi_open(const char* client_name, tapi_client_ready_function callback, void* user_data);

打开 Telephony 连接,获取上下文句柄。

参数:

  • client_name 客户端名称。
  • callback 回调函数。
  • user_data 用户数据,传递给回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_open_service

tapi_context tapi_open_service(const char* client_name, tapi_client_ready_function callback, void* user_data, unsigned int tapi_service);

打开 Telephony 连接。

参数:

  • client_name 客户端名称。
  • callback 回调函数。
  • user_data 用户数据,传递给回调函数。
  • tapi_service Telephony 服务类型。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_close

int tapi_close(tapi_context context);

关闭 Telephony 连接。

参数:

  • context Telephony 上下文句柄。

返回值:

成功时返回 0,失败时返回负的错误码。

能力查询

tapi_is_feature_supported

bool tapi_is_feature_supported(tapi_feature_type feature);

查询是否支持指定功能。

参数:

  • feature 功能名称。

返回值:

成功时返回 0,失败时返回负的错误码。

无线电控制

tapi_set_radio_power

int tapi_set_radio_power(tapi_context context, int slot_id, int event_id, bool state, tapi_async_function p_handle);

设置射频功率。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • state 状态。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_set_radio_power_async

int tapi_set_radio_power_async(tapi_context context, int slot_id, int event_id, bool state, void* user_data, tapi_async_function p_handle);

设置射频功率(异步版本)。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • state 状态。
  • user_data 用户数据,传递给回调函数。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_radio_power

int tapi_get_radio_power(tapi_context context, int slot_id, bool* out);

获取射频功率状态。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

网络模式

tapi_set_pref_net_mode

int tapi_set_pref_net_mode(tapi_context context, int slot_id, int event_id, tapi_pref_net_mode mode, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • mode 模式。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_pref_net_mode

int tapi_get_pref_net_mode(tapi_context context, int slot_id, tapi_pref_net_mode* out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_radio_state

int tapi_get_radio_state(tapi_context context, int slot_id, tapi_radio_state* out);

获取射频状态。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

Modem 信息

tapi_get_imei

int tapi_get_imei(tapi_context context, int slot_id, char** out);

获取设备 IMEI。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_imeisv

int tapi_get_imeisv(tapi_context context, int slot_id, char** out);

获取设备 IMEI。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_modem_revision

int tapi_get_modem_revision(tapi_context context, int slot_id, char** out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_phone_state

int tapi_get_phone_state(tapi_context context, int slot_id, tapi_phone_state* state);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • state 状态。

返回值:

成功时返回 0,失败时返回负的错误码。

手机号码

tapi_get_msisdn_number

int tapi_get_msisdn_number(tapi_context context, int slot_id, char** out);

获取 SIM 卡电话号码(MSISDN)。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

Modem 状态与控制

tapi_get_modem_activity_info

int tapi_get_modem_activity_info(tapi_context context, int slot_id, int event_id, tapi_async_function p_handle);

获取 Modem 活动信息。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_invoke_oem_ril_request_raw

int tapi_invoke_oem_ril_request_raw(tapi_context context, int slot_id, int event_id, unsigned char oem_req[], int length, tapi_async_function p_handle);

发送 OEM RIL 请求。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • oem_req OEM 请求数据。
  • length 数据长度。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_invoke_oem_ril_request_strings

int tapi_invoke_oem_ril_request_strings(tapi_context context, int slot_id, int event_id, char* oem_req[], int length, tapi_async_function p_handle);

发送 OEM RIL 请求。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • oem_req OEM 请求数据。
  • length 数据长度。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_enable_modem

int tapi_enable_modem(tapi_context context, int slot_id, int event_id, bool enable, tapi_async_function p_handle);

启用 Modem。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • enable 是否启用。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_enable_modem_abnormal_event

int tapi_enable_modem_abnormal_event(tapi_context context, int slot_id, bool enable, int event_id, int module_mask, int from_event_id, int to_event_id, tapi_async_function p_handle);

启用 Modem。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • enable 是否启用。
  • event_id 事件 ID,用于回调匹配。
  • module_mask 模块掩码。
  • from_event_id 源事件 ID。
  • to_event_id 目标事件 ID。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_set_signal_report_threshold

int tapi_set_signal_report_threshold(tapi_context context, int slot_id, int event_id, int type, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • type 类型。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_suppress_message_report

int tapi_suppress_message_report(tapi_context context, int slot_id, int event_id, bool enable, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • enable 是否启用。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_enable_modem_stationary

int tapi_enable_modem_stationary(tapi_context context, int slot_id, int event_id, bool enable, tapi_async_function p_handle);

启用 Modem。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • enable 是否启用。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_set_modem_stationary_threshold

int tapi_set_modem_stationary_threshold(tapi_context context, int slot_id, int event_id, int value, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • value 值。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_modem_status

int tapi_get_modem_status(tapi_context context, int slot_id, int event_id, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_modem_status_sync

int tapi_get_modem_status_sync(tapi_context context, int slot_id, tapi_modem_state* out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_set_fast_dormancy

int tapi_set_fast_dormancy(tapi_context context, int slot_id, int event_id, bool state, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • state 状态。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_phone_number

int tapi_get_phone_number(tapi_context context, int slot_id, char** out);

获取本机号码。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

事件订阅

tapi_register

int tapi_register(tapi_context context, int slot_id, tapi_indication_msg msg, void* user_obj, tapi_async_function p_handle);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • msg 消息内容。
  • user_obj 用户对象指针。
  • p_handle 异步回调函数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_unregister

int tapi_unregister(tapi_context context, int watch_id);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • watch_id 监听 ID(用于取消监听)。

返回值:

成功时返回 0,失败时返回负的错误码。

运营商配置

tapi_get_carrier_config_bool

int tapi_get_carrier_config_bool(tapi_context context, int slot_id, char* key, bool* out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • key 键名。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_carrier_config_int

int tapi_get_carrier_config_int(tapi_context context, int slot_id, char* key, int* out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • key 键名。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

tapi_get_carrier_config_string

int tapi_get_carrier_config_string(tapi_context context, int slot_id, char* key, char** out);

打开 Telephony 连接,获取上下文句柄。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • key 键名。
  • out 输出参数。

返回值:

成功时返回 0,失败时返回负的错误码。

文档内容是否有帮助?
有帮助
无帮助