首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android上编程编写保护NTAG203 NFC芯片?

如何在android上编程编写保护NTAG203 NFC芯片?
EN

Stack Overflow用户
提问于 2015-01-23 10:07:27
回答 1查看 2.1K关注 0票数 0

我一直在寻找一种会员卡解决方案的NTAG203 NFC芯片,并打算在每一张卡上设置并写入一个唯一的ID。

奇怪的是,我在网上找不到多少关于如何编写保护NTAG203芯片的信息,尽管我可以找到被写保护的芯片正在出售。我也见过提供写保护服务的应用程序。

如何编写android应用程序,以便在NTAG203上启用写保护?

谢谢!

(为澄清而编辑的问题)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 16:30:36

是的,这是可能的。NTAG203 (数据表)是一个ISO/IEC 14443类型A (" NFC -A")标签,遵循NFC论坛2标签操作规范。为了激活这种标签的物理写保护功能,您需要设置锁位。

在Android上,您可以通过为标记句柄获取NfcA技术连接器类的实例来访问这样的标记:

代码语言:javascript
复制
Tag tag = ...  // I assume you already received the tag handle by means of an NFC discovery intent
NfcA nfcA = NfcA.get(tag);
if (nfcA != null) {
    // this is an NFC-A tag
    ...

NTAG203的锁位位于页2 (0x02)字节2-3和页40 (0x28)字节0-1中。这4个字节中的每个位控制NTAG203内存区域的某些页面的锁定状态。为了激活锁定,您必须为包含锁位的页面发出写命令,从而将锁位设置为'1'。因此,对于锁定整个标记的最简单的场景,您可以这样做:

代码语言:javascript
复制
    // connect to the tag
    nfcA.connect();

    byte[] result;
    // write all-ones to the lock bits on page 0x02
    result = nfcA.transceive(new byte[]{
            (byte)0xA2,  // Command: WRITE
            (byte)0x02,  // Address: page 0x02 (2)
            (byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF  // Data: set bytes 2-3 to all '1'
    });
    // write all-ones to the lock bits on page 0x28
    result = nfcA.transceive(new byte[]{
            (byte)0xA2,  // Command: WRITE
            (byte)0x02,  // Address: page 0x28 (40)
            (byte)0xFF, (byte)0x11, (byte)0x00, (byte)0x00  // Data: set byte 0 and lock bits in byte 1 to all '1'
    });

    nfcA.close();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28107419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档