【问题标题】:ACR122u stop detecting SmartPhoneACR122u 停止检测智能手机
【发布时间】:2026-02-14 05:10:01
【问题描述】:

我正在为我的论文开发一个原型。我正在使用 ACR122u 读/写器,通过 APDU 命令将数据传递到 android 手机(HTC One M7)。在我应用最后一个补丁(6.09.401.5)之前,ACR122u 正在检测智能手机,但之后它就停止了

之前我只是用来激活智能手机上的 NFC,ACR122u 会从红绿变为检测到它。

请寻求指导

关于

【问题讨论】:

    标签: nfc pcsc


    【解决方案1】:

    可能由于更新而禁用了“自动 PICC 轮询”,或者在 PICC 轮询期间忽略了特定的标签类型。您可以尝试将 PICC 操作参数重置为默认值(0xFF),可以使用 ACR 提供的程序访问您的 ACR122U 阅读器,也可以使用以下程序。

    public class ResetReader {
        public static final int FILE_DEVICE_SMARTCARD = 0x310000;
        public static final int IOCTL_CCID_ESCAPE_SCARD_CTL_CODE = 
                                            FILE_DEVICE_SMARTCARD + 3500 * 4;
    
        public static void main(String[] args) throws Exception {
            // the following loop lists all connected card terminals
            TerminalFactory factory = TerminalFactory.getDefault();
            for (CardTerminal term : factory.terminals().list()) {
                System.out.println(term.getName());
            }
    
            // connect to the ACR122U by choosing the correct name
            CardTerminal terminal = factory.terminals().getTerminal("ACS ACR122 0");
            Card c = terminal.connect("DIRECT");
            c.transmitControlCommand(IOCTL_CCID_ESCAPE_SCARD_CTL_CODE,
                new byte[]{(byte)0xFF, 0x00, 0x51, (byte)0xFF, 0x00});
        }
    
    }
    

    【讨论】: