在Android中获取NFC硬件ID

Mat*_*att 4 android nfc

我想做一些相当简单的事情,但如果Gingerbread API中的方法是针对正在扫描的令牌的ID或Nexus S上的硬件,我无法解决.我希望能够做什么获得设备的NFC芯片的唯一标识符,因此我可以注册它(例如,当通过RFID阅读器放弃设备时,我可以将被放弃的设备与账户相关联).使用当前的API方法可以实现这一点吗?

看起来最有希望的代码(但我无法测试,因为我没有设备)是

byte[] tagId = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
Run Code Online (Sandbox Code Playgroud)

Ada*_*rie 8

tagId设置为一个字节数组.您需要将该数组解析为十六进制字符串.有很多方法可以做到这一点,但是这段代码可以在不使用外部库的情况下完成,而且很容易看出发生了什么:

String ByteArrayToHexString(byte [] inarray) 
    {
    int i, j, in;
    String [] hex = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
    String out= "";

    for(j = 0 ; j < inarray.length ; ++j) 
        {
        in = (int) inarray[j] & 0xff;
        i = (in >> 4) & 0x0f;
        out += hex[i];
        i = in & 0x0f;
        out += hex[i];
        }
    return out;
}
Run Code Online (Sandbox Code Playgroud)