请选择 进入手机版 | 继续访问电脑版

思培培训,报名时说通过Quinn报名,有优惠!

NFC中国网--NFC门户网站,中国第一NFC论坛,NFC中文论坛(近场通讯技术)

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8900|回复: 13

新人第一帖:Android获取Tag UID

[复制链接]
发表于 2013-4-9 09:37:05 | 显示全部楼层 |阅读模式
        /**
           *ANDROID NFC事件触发
           * /
     protected void onNewIntent(Intent intent)
        {
                // TODO Auto-generated method stub
                super.onNewIntent(intent);
                Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
                String action = intent.getAction();
                String UID = getCardID(intent);
                readTag(tagFromIntent);
                textView_readactivity_UID.setText("卡片UID为:" + UID);
        }



      public String getCardID(Intent intent)
        {
                byte[] myNFCID = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID);
                return Converter.getHexString(myNFCID, myNFCID.length);
        }



以下是字符转换  Converter.java文件,直接复制
       public class Converter {

        // Hex help
        private static final byte[] HEX_CHAR_TABLE = { (byte) '0', (byte) '1',
                        (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6',
                        (byte) '7', (byte) '8', (byte) '9', (byte) 'A', (byte) 'B',
                        (byte) 'C', (byte) 'D', (byte) 'E', (byte) 'F' };

        /**
         * convert a byte arrary to hex string
         * @param raw byte arrary
         * @param len lenght of the arrary.
         * @return hex string.
         */
        public static String getHexString(byte[] raw, int len) {
                byte[] hex = new byte[2 * len];
                int index = 0;
                int pos = 0;

                for (byte b : raw) {
                        if (pos >= len)
                                break;

                        pos++;
                        int v = b & 0xFF;
                        hex[index++] = HEX_CHAR_TABLE[v >>> 4];
                        hex[index++] = HEX_CHAR_TABLE[v & 0xF];
                }

                return new String(hex);
        }
        
        
}





回复

使用道具 举报

发表于 2013-4-9 09:40:20 | 显示全部楼层
感谢你的分享
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-9 09:41:56 | 显示全部楼层
admin 发表于 2013-4-9 09:40
感谢你的分享

大家共同学习
回复 支持 反对

使用道具 举报

发表于 2013-4-24 09:58:56 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2013-5-15 08:40:18 | 显示全部楼层
支持一下~~
回复 支持 反对

使用道具 举报

发表于 2013-6-2 10:56:55 | 显示全部楼层
我是初次接触nfc 而且也是android初学者 代码不是很明白 能给注释下么 这个应该能够获取整个tag的基本信息吧?
回复 支持 反对

使用道具 举报

发表于 2013-6-19 09:42:19 | 显示全部楼层
感谢分享~~!!
回复 支持 反对

使用道具 举报

发表于 2013-7-15 10:17:11 | 显示全部楼层
多谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2013-8-27 08:59:04 | 显示全部楼层
LZ好银呀。。。
回复 支持 反对

使用道具 举报

发表于 2013-10-18 16:25:10 | 显示全部楼层
说明一下,其实Android已经提供了实现好的byte[]和hex String之间转换的API:

String IccUtils::bytesToHexString(byte[] bytes);

直接使用就可以,没有必要自己再费力的写一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|NFC中国网new

GMT+8, 2022-10-7 15:04 , Processed in 0.037443 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表