繁体   English   中英

NDEF如何格式化NFC标签?

[英]How to NDEF format NFC-Tags?

晚上好,

您的页面已经起到了很大的作用,但是我在尝试格式化NFC标签时发现了问题,但找不到与NDEF格式化标签相关的主题。

首先,我必须说我是NFC技术的新手。

我购买了以下标签: http : //www.ti.com/product/RI-I16-112A-03/description

该芯片已经过工厂测试,因此每个字节都已写入0x00。

现在问题开始了:我将应用笔记下载到了标签: http : //www.ti.com/lit/an/sloa166a/sloa166a.pdf并创建了一个android应用程序(下面的源代码)来编写内存,如下所示在图12。 当我使用NXP-TagInfo应用程序读取标签的内容时,内存看起来应该是应该的。 问题仍然在于,它在NXP-TagInfo中显示“没有NFC数据集存储”,而且被发现为NFC_TECH。 告诉我是否错,但这表明该标记绝对不是NDEF格式的。

在写标签时,我做了一些研究,因为它没有记录在应用笔记/数据表中,这是我最困惑的地方。 是否有任何文件指定可以使用或存在哪些字节标志? 我使用0x42是因为我在该论坛中看到过它-如果您需要来源,请提出要求。

我的硬件:Sony Xperia S-Android 4.1.2(内部版本号:6.2.B.1.96)
与Eclipse一起编译-目标SDK =最小SDK = API级别16

最后是代码:

public class Nfc_activity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    TextView textView = new TextView(this);
    String result = "";
    textView.setTextSize(40);

    Intent intent = getIntent();
    Tag receivedTag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

    byte[] block0 = new byte[] {0x42,0x21,(byte)0x00,(byte)0xe1,0x40,0x20,0x01};
    byte[] block1 = new byte[] {0x42,0x21,(byte)0x01,0x03,0x0b,(byte)0xd1,0x01};

    byte[] block2 = new byte[] {0x42,0x21,(byte)0x02,0x07,0x55,0x01,0x74};
    byte[] block3 = new byte[] {0x42,0x21,(byte)0x03,0x69,0x2e,0x63,0x6f};
    byte[] block4 = new byte[] {0x42,0x21,(byte)0x04,0x6d,(byte)0xfe,(byte)0x00,(byte)0x00};

    for(int i=0; i<receivedTag.getId().length; i++) {
        result+= Integer.toHexString(receivedTag.getId()[i]&0xff)+':';
    }


    textView.setText(result);
    setContentView(textView);

    NfcV nvcv = NfcV.get(receivedTag);

    try {
        nvcv.connect();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    try {
        nvcv.transceive(block0);
    } catch (IOException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }

    try {
        nvcv.transceive(block1);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        nvcv.transceive(block2);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        nvcv.transceive(block3);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        nvcv.transceive(block4);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        nvcv.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}


编辑:在这里,您可以看到NXP的taginfo:

<?xml version="1.0" encoding="UTF-8"?>
<scan>
    <version>3.0</version>
    <date>2014-09-20 14:19:38</date>
    <title>Texas Instruments Tag-it HF-I Plus (inlay) tag</title>
    <uid nxp="false">3C:A7:4C:2B:00:00:07:E0</uid>
    <hasndef>false</hasndef>
    <section>
        <subsection title="IC manufacturer">
            <block type="text">
    <content>Texas Instruments</content>
</block>
        </subsection>
        <subsection title="IC type">
            <block type="text">
    <content>Tag-it HF-I Plus (inlay)</content>
</block>
        </subsection>
    </section>
    <section>
        <subsection title="No NFC data set storage">
            <block type="text">
    <content></content>
</block>
        </subsection>
    </section>
    <section>
        <subsection title="Memory size">
            <block type="text">
    <content>256 bytes
► 64 blocks, with 4 bytes per block</content>
</block>
        </subsection>
        <subsection title="IC detailed information">
            <block type="text">
    <content>Supported read commands:
► Single Block Read
► Multiple Block Read
► Get System Information
AFI supported
DSFID supported
IC reference value: 0x8B</content>
</block>
        </subsection>
    </section>
    <section>
        <subsection title="Technologies supported">
            <block type="text">
    <content>ISO/IEC 15693-3 compatible
ISO/IEC 15693-2 compatible</content>
</block>
        </subsection>
        <subsection title="Android technology information">
            <block type="text">
    <content>Tag description:
► TAG: Tech [android.nfc.tech.NfcV]
android.nfc.tech.NfcV
► Maximum transceive length: 253 bytes
<hexoutput>MIFARE Classic support present in Android</hexoutput></content>
</block>
        </subsection>
        <subsection title="Detailed protocol information">
            <block type="text">
    <content>ID: E0:07:00:00:2B:4C:A7:3C
AFI: 0x00
DSFID: 0x00</content>
</block>
        </subsection>
        <subsection title="Memory content">
            <block>
    <address>0</address>
    <data access=".">E1 40 20 01</data>
</block>
<block>
    <address>1</address>
    <data access=".">03 0B D1 01</data>
</block>
<block>
    <address>2</address>
    <data access=".">07 55 01 74</data>
</block>
<block>
    <address>3</address>
    <data access=".">69 2E 63 6F</data>
</block>
<block>
    <address>4</address>
    <data access=".">6D FE 00 00</data>
</block>
<block>
    <address>5</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>6</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>7</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>8</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>9</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>10</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>11</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>12</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>13</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>14</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>15</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>16</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>17</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>18</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>19</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>20</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>21</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>22</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>23</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>24</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>25</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>26</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>27</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>28</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>29</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>30</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>31</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>32</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>33</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>34</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>35</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>36</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>37</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>38</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>39</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>40</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>41</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>42</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>43</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>44</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>45</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>46</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>47</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>48</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>49</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>50</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>51</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>52</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>53</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>54</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>55</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>56</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>57</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>58</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>59</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>60</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>61</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>62</address>
    <data access=".">00 00 00 00</data>
</block>
<block>
    <address>63</address>
    <data access=".">00 00 00 00</data>
</block>
<block type="text">
    <content>
  x:user locked, *:factory locked, .:unlocked</content>
</block>
        </subsection>
    </section>
</scan>

谢谢你的回复。
迈克尔

NfcV(ISO / IEC 15693)标签作为NDEF标签的使用仍未标准化。 因此,设备制造商必须将对标签制造商专有定义的支持(与此同时,它们在大多数情况下都是相似/相同的)集成到其Android版本中。

您正在使用(在组合与Android版)设备不1对NfcV标签NDEF支持。 因此,您无法以Android设备检测到NDEF消息的方式格式化标签。


1 )实际上这并不完全正确。 该设备可能在NXP的ICODE标签上支持NDEF(使用与TI标签完全相同的格式)。 不幸的是,通过测试标签序列号中的制造商指示是否等于0x04(= NXP),该支持仅限于NXP标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM