You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaCard SIMToolkit开发:如何通过超长AID选择UICC文件/应用?

用长AID选择UICC文件/应用的解决方案

在SIM Toolkit开发场景中,你提到的sim.select(short)或预定义常量的调用方式仅适用于短文件ID(FID,比如0x3F00这类2字节值),无法处理长度超过10字节的AID。要实现长AID的文件/应用选择,你需要使用sim.access.SIMView类中支持字节数组参数的重载select方法,具体操作如下:

  • 1. 把目标AID转为字节数组
    先将AID的十六进制字符串拆分为单个字节,比如你的AID是A000000003869807010203(12字节),转换为Java字节数组:

    byte[] targetAid = new byte[]{
        (byte)0xA0, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x03,
        (byte)0x86, (byte)0x98, (byte)0x07, (byte)0x01, (byte)0x02,
        (byte)0x03
    };
    
  • 2. 调用字节数组参数的select方法
    直接传入这个字节数组即可完成长AID的选择,记得捕获可能的异常:

    try {
        // 传入AID字节数组进行选择
        sim.select(targetAid);
        // 选择成功后,可执行读取文件、执行命令等后续操作
    } catch (SIMException e) {
        // 处理选择失败的情况,比如AID不存在、权限受限等
        // 可根据异常码做针对性处理
    }
    
  • 重要提示

    • 这个重载方法支持符合ISO 7816标准的AID,最长可处理16字节的AID
    • 操作前需确保你的STK小程序拥有目标文件/应用的访问权限,否则会抛出权限相关的SIMException
    • 如果需要选择某个DF下的子文件,可以先通过FID或AID选中父DF,再执行子文件的选择操作

内容的提问来源于stack exchange,提问作者VSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:24:50