ACR122U NFC读写器频繁断线

2023-12-03

当我将 SIII (Android 4.3) 放在 ACR122U NFC 读卡器上时,LED 持续闪烁绿色。当我将 Samsung S4 (Android 4.3) 放入读卡器时,LED 会变绿直到手机位于读卡器上。在这两种情况下,NFC 均已打开且设备处于解锁状态。 此行为会转化为 SIII 中的频繁断开连接和 S4 上的稳定连接。为什么两部手机的表现不同?我知道有两部手机配备了来自两个不同供应商(NXP 和 Broadcom)的 NFC 芯片组。

我的问题是这些设备之间这种不一致行为的根源是什么?

另一个问题是为什么手机会给出 ATR?


使用 ACR122U/PN532 进行软件卡仿真的命令序列可在这个答案.

除此之外,ACR122U 还有不同版本:

  • 有些总是指示智能卡的存在。在这种情况下,可以使用连接到“模拟”卡

    // SCardConnect with SCARD_SHARE_SHARED, SCARD_PROTOCOL_ANY
    Card card = cardTerminal.connect("*");
    CardChannel cardChannel = card.getBasicChannel();
    

    之后,可以使用 APDU 包装发送 PN532 命令:

    > FF000000 Lc PN532-COMMAND
    < PN532-RESPONSE 9000
    

    cardChannel.transmit method:

    CommandAPDU commandAPDU = ...
    // SCardTransmit
    Response responseAPDU = cardChannel.transmit(commandAPDU);
    
  • ACR122U 的其他版本并不总是“模拟”智能卡的存在。相反,它们会自动轮询非接触式卡,并且仅在将实际卡呈现给读卡器时才指示卡的存在。在这种情况下使用cardTerminal.connect("*");仅当存在实际卡时才可能。然而,当 ACR122U 在软件卡模拟模式下使用时,情况通常并非如此。在这种情况下,仍然可以使用直接模式建立与阅读器的连接

    // SCardConnect with SCARD_SHARE_DIRECT
    Card card = cardTerminal.connect("direct");
    

    之后,可以使用转义命令与阅读器交换相同的 APDU 包装的 PN532 命令(如果转义命令对于您的阅读器版本来说是否正确,您可能需要检查手册):

    final int IOCTL_SMARTCARD_ACR122_ESCAPE_COMMAND = 0x003136B0; //IOCTL(3500) for Windows
    //final int IOCTL_SMARTCARD_ACR122_ESCAPE_COMMAND = 0x42000DAC; //IOCTL(3500) for Linux
    byte[] commandAPDU = ...
    // SCardControl
    byte[] responseAPDU  = card.transmitControlCommand(IOCTL_SMARTCARD_ACR122_ESCAPE_COMMAND, commandAPDU);
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ACR122U NFC读写器频繁断线 的相关文章

随机推荐

  • require() 不适用于变量 - React Native

    我遇到一个奇怪的问题 如果我直接设置一个变量 其值类似于 const myString someWord 可以 但是如果我从像 const myString someVariable 这样的变量中获取值 则不起作用 并且如果我在条件块上设置
  • 而在Lua中,它是如何处理的呢?

    我在一个中看到了这段代码Lua 风格指南 print x yes and YES or x Context local function test x print x yes and YES or x rather than if x ye
  • 使用 Boost 库生成的 UUID 与 Java 的唯一性

    我组织的一个 Android 应用程序需要在每个用户首 次启动该应用程序时为其分配一个 UUID 版本 4 目前我们使用 Boost 库 1 58 0 用于此目的 我们的 Android 应用程序将使用 JNI 运行以下代码生成 UUIDv
  • vector::erase() 未按预期工作

    for it1 prime begin it1
  • 在 Python 中将 Excel 工作表从一个工作表复制到另一个工作表

    我想做的就是用 Python 将工作表从 Excel 工作簿复制到另一个 Excel 工作簿 我想保留所有格式 彩色单元格 表格等 我有许多 Excel 文件 我想将所有文件中的第一张工作表复制到一个工作簿中 如果对任何单个工作簿进行更改
  • 如何写入资源文件?

    如果可以从源文件中读取 如下所示 string fileContent Resources Users using var reader new StringReader fileContent string line while line
  • 2 个扭曲的 SSL 证书

    我有这个代码 from twisted web server import Site from twisted web static import Data from twisted internet import reactor ssl
  • 在 R 中的变量列表上按组运行线性模型

    我有一个数据框 我需要为每个组 站点 运行 6 个 2 变量线性模型 然后 我需要将结果转换为数据框 线性模型中的第二个变量发生变化 我已经使用了该部分lapply 但我不知道如何按组运行 我已经在 SO 上找到了答案 可以回答我的部分问题
  • Tkinter 透明度遇到问题

    我在 TKinter 中使顶级小部件淡入时遇到问题 由于某种原因 小部件根本不会淡入 然后它将显示在任务栏中 但只有在单击运行此命令的按钮两次之后 它不应该出现在任务栏中 代码负责这些问题 Alpha 0 0 w1 attributes a
  • 每个序列化程序都支持 OnDeserializedAttribute 吗?

    我只是偶然发现MSDN 上的 OnDeserializedAttribute 描述指出 当应用于方法时 指定在对象图中的对象反序列化后立即调用该方法 相对于图中其他对象的反序列化顺序是不确定的 问题 是否需要具有此属性的方法any序列化器
  • 将额外参数传递给 usort 回调[重复]

    这个问题在这里已经有答案了 我有以下功能 WordPress 可以运行 但这实际上是一个 PHP 问题 他们对我的 term对象根据artist lastname每个对象的元数据中的属性 我想将一个字符串传递到 meta在第一个函数中 这将
  • Twig - 动态数组键

    目前正在开发一个基于 Symfony 的工具 我正在迭代一系列配置设置 我想要实现的目标似乎很简单 我正在努力获得一定的价值 但其中一个键必须是动态的 下面是一个没有动态密钥的工作示例 set id tmod config content
  • 什么是“访问器功能”?

    In 第 4 3 26 节标准 ECMA 262 版本的 根据属性的形式 可以表示值 直接作为数据值 原始值 对象或 函数对象 或间接通过一对访问器函数 我不明白 访问器函数 是什么意思 也没有在规范中找到访问器函数的定义 然后我在网上搜索
  • 如何在 Python 中使用 Selenium 编辑 CodeMirror?

    每次尝试将文本插入网页上的 CodeMirror 时 我都会收到以下错误消息 有谁知道如何使用selenium成功编辑codemirror WebDriverException Message unknown error Cannot re
  • OpenMP:深度优先搜索的好策略

    我正在编写一个 C 程序 该程序对封闭的骑士之旅 代码是here 我想使用 OpenMP 并行化它 我的问题是以一种创建足够程度的并行性的方式来做到这一点 现在相关部分我的代码看起来像这样 pragma omp parallel for r
  • Emacs:符号作为变量的值为空

    这是我的 emacs file setq default c basic offset 4 c default style linux setq default tab width 4 indent tabs mode t define k
  • 如何确定何时收到蓝牙文件?

    在我的应用程序中 我需要在收到蓝牙传输的文件后对其进行编辑 为了查明何时通过蓝牙接收到文件 我必须使用 BroadcastReceiver 监听什么 Intent 另外 请告诉我是否还有其他解决方案 如果用户通过 Android 操作系统获
  • 每个方面图的 Binwidth 不同

    试图理解分配唯一的binwidth对于每个因子水平geom histogram 但到目前为止还是失败了 这是可重现的数据 a lt rnorm 10 7 0 1 b lt rnorm 10 13 5 df lt data frame dat
  • 当我尝试在内核中使用 printf() 时出现错误

    我使用的是 Visual Studio 2010 和具有计算能力 2 0 的 GTX480 我尝试将 sm 设置为 2 0 但是当我尝试在内核中使用 printf 时 我得到 错误 从 device global 调用主机函数 printf
  • ACR122U NFC读写器频繁断线

    当我将 SIII Android 4 3 放在 ACR122U NFC 读卡器上时 LED 持续闪烁绿色 当我将 Samsung S4 Android 4 3 放入读卡器时 LED 会变绿直到手机位于读卡器上 在这两种情况下 NFC 均已打