当前位置: 首页 > 知识库问答 >
问题:

在NTAG213中获取异常

劳仲渊
2023-03-14

我使用以下代码在 NTAG213 NFC 标签上设置 AUTH0(需要密码验证的第一页):

try {
    result = nfca.transceive(new byte[]{
            (byte) 0xA2,  // Command: WRITE
            (byte) 0x29,  // Address: AUTH0
            (byte) 0x00   // starting address
    });
} catch (IOException e) {
    e.printStackTrace();
}

然而,当我在AUTH0上写00h(作为起始地址)时,总是会出现异常:“收发器失败”。

你能告诉我这里可能会出什么问题吗?

共有1个答案

岳永思
2023-03-14

NTAG213(与其他NTAG和MIFARE Ultralight芯片一样)使用4字节的页面大小。WRITE命令(0xA2)只能用于写入整个页面。因此,WRITE命令的数据参数需要由4个字节组成。

最简单的方法是覆盖整个配置页面:

result = nfca.transceive(new byte[]{
        (byte) 0xA2,  // Command: WRITE
        (byte) 0x29,  // Address: CONFIG0
        (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00
});

但请记住,这也会覆盖其他配置参数(镜像字节和镜像页)。如果要将这些其他参数设置为其默认值,只需使用以下命令:

result = nfca.transceive(new byte[]{
        (byte) 0xA2,  // Command: WRITE
        (byte) 0x29,  // Address: CONFIG0
        (byte) 0x04, (byte) 0x00, (byte) 0x00, (byte) 0x00
});

但是,如果要将这些其他值保留为当前包含的值,则可能需要先读取页面,然后使用这些值更新页面(仅将 AUTH0 设置为 0x00):

byte[] currentData = nfca.transceive(new byte[]{
        (byte) 0x30,  // Command: READ
        (byte) 0x29,  // Address: CONFIG0
});

result = nfca.transceive(new byte[]{
        (byte) 0xA2,  // Command: WRITE
        (byte) 0x29,  // Address: CONFIG0
        currentData[0], currentData[1], currentData[2], (byte) 0x00
});
 类似资料:
  • 我在练习Spring靴。我已经从git repo下载了Spring Boot代码,并将其导入到InteliJ IDEA上。在执行spring boot应用程序时,我得到了以下异常。你对此有什么想法吗?这是我的pom.xml org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot

  • 问题内容: 我是Java和OOP的新手,这是我的问题。当我运行以下代码时,我得到了 线程“主”中的异常java.lang.StackOverflowError。 问题出在我创建对象的代码中。class不会发生问题。如果在run方法内部创建对象,则代码可以正常工作。你能解释一下为什么吗? 问题答案: 您的类的字段包含类的另一个实例,也有自己的字段,包含的另一个实例,依此类推。 换句话说,当您创建该实

  • 我有一个标签叫信息。我需要点击信息标签。相同的xpath适用于其他场景,该场景具有相同的信息选项卡和相同的html代码,当我尝试在其他场景中使用该xpath时,却没有发现这样的元素异常。 请帮我解决这个问题 xpath: HTML:

  • 我正在制作一个不和谐的JDA机器人,当用户发送消息:前缀($)hastebin他们的代码时,机器人将创建一个请求hastebin并粘贴他们的代码,之后他将粘贴网址并打印到控制台(我将在解决问题后将其作为消息发送)。 这是我的HastebinCommand类: 这是我的Hastebin请求类: 我的错误: C:\Users\user\Documents\Java\Java Projects\Disc

  • 我正在创建一个Java swing计算器。我想得到一个给定数的倒数。所以如果我输入0,它应该会打印出一条错误消息。 这是我的代码:

  • 问题内容: 我在应用程序上加载一堆图像时遇到错误,我不确定是什么原因引起的。 这是他得到的错误。线135在底部。 我认为他的手机内存不足。他使用的是2010年生产的Desire HD。此方法的作用是从服务器获取图像并将其保存在哈希图中。以及将其显示在屏幕上。关于如何防止OUTMEMORYERROR的任何想法? 我当时正在考虑建立一个计数器,如果有超过20张图像,该计数器只会清除哈希图。 Logca