search
暂无数据
SIM 卡管理 API更新时间:2026-05-22 21:10:08

SIM 卡管理 API

SIM 卡状态查询和管理。

头文件:#include <tapi_sim.h>

openvela 实现说明

  • SIM 卡管理:所有接口均带 slot_id 参数,用于标识 SIM 卡
  • PIN 管理:提供 enter_pin / change_pin / reset_pin / lock_pin / unlock_pin 完整 PIN/PUK 流程
  • APDU 通道:通过 open_logical_channel / close_logical_channel / transmit_apdu_* 直接向 SIM 卡发送 APDU 命令
  • UICC 开关:通过 get_uicc_enablement / set_uicc_enablement 控制 SIM 卡的启用状态
  • 事件订阅:tapi_sim_register / tapi_sim_unregister 监听 SIM 卡状态变化

SIM 状态查询

tapi_sim_has_icc_card

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

查询是否插入 SIM 卡。

参数:

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

返回值:

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

tapi_sim_get_sim_state

int tapi_sim_get_sim_state(tapi_context context, int slot_id, int* out);

获取 SIM 卡状态。

参数:

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

返回值:

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

tapi_sim_get_sim_operator

int tapi_sim_get_sim_operator(tapi_context context, int slot_id, int length, char* out);

获取 SIM 卡运营商信息。

参数:

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

返回值:

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

tapi_sim_get_sim_operator_name

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

获取 SIM 卡运营商信息。

参数:

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

返回值:

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

tapi_sim_get_sim_iccid

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

获取 SIM 卡 ICCID。

参数:

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

返回值:

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

tapi_sim_get_subscriber_id

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

获取用户标识(IMSI)。

参数:

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

返回值:

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

事件订阅

tapi_sim_register

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

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_unregister

int tapi_sim_unregister(tapi_context context, int watch_id);

获取用户标识(IMSI)。

参数:

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

返回值:

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

PIN 管理

tapi_sim_change_pin

int tapi_sim_change_pin(tapi_context context, int slot_id, int event_id, char* pin_type, char* old_pin, char* new_pin, tapi_async_function p_handle);

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_enter_pin

int tapi_sim_enter_pin(tapi_context context, int slot_id, int event_id, char* pin_type, char* pin, tapi_async_function p_handle);

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_reset_pin

int tapi_sim_reset_pin(tapi_context context, int slot_id, int event_id, char* puk_type, char* puk, char* new_pin, tapi_async_function p_handle);

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_lock_pin

int tapi_sim_lock_pin(tapi_context context, int slot_id, int event_id, char* pin_type, char* pin, tapi_async_function p_handle);

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_unlock_pin

int tapi_sim_unlock_pin(tapi_context context, int slot_id, int event_id, char* pin_type, char* pin, tapi_async_function p_handle);

获取用户标识(IMSI)。

参数:

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

返回值:

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

APDU 逻辑通道

tapi_sim_open_logical_channel

int tapi_sim_open_logical_channel(tapi_context context, int slot_id, int event_id, unsigned char aid[], int len, tapi_async_function p_handle);

打开 SIM 卡逻辑通道。

参数:

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

返回值:

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

tapi_sim_close_logical_channel

int tapi_sim_close_logical_channel(tapi_context context, int slot_id, int event_id, int session_id, tapi_async_function p_handle);

关闭 SIM 卡逻辑通道。

参数:

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

返回值:

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

tapi_sim_transmit_apdu_logical_channel

int tapi_sim_transmit_apdu_logical_channel(tapi_context context, int slot_id, int event_id, int session_id, unsigned char pdu[], int len, tapi_async_function p_handle);

通过逻辑通道发送 APDU 命令。

参数:

  • context Telephony 上下文句柄。
  • slot_id SIM 卡槽 ID(0 或 1)。
  • event_id 事件 ID,用于回调匹配。
  • session_id 会话 ID。
  • pdu PDU 数据。
  • len 长度。
  • p_handle 异步回调函数。

返回值:

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

tapi_sim_transmit_apdu_basic_channel

int tapi_sim_transmit_apdu_basic_channel(tapi_context context, int slot_id, int event_id, unsigned char pdu[], int len, tapi_async_function p_handle);

通过逻辑通道发送 APDU 命令。

参数:

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

返回值:

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

UICC 开关

tapi_sim_get_uicc_enablement

int tapi_sim_get_uicc_enablement(tapi_context context, int slot_id, tapi_sim_uicc_app_state* out);

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_set_uicc_enablement

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

获取用户标识(IMSI)。

参数:

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

返回值:

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

tapi_sim_get_sim_invalid

int tapi_sim_get_sim_invalid(tapi_context context, int slot_id, int* out);

获取用户标识(IMSI)。

参数:

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

返回值:

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

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