ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于android的nfc问题

2019-07-27 13:43:34  阅读:245  来源: 互联网

标签:nfc NdefRecord ndef printStackTrace tag 关于 catch android


原文链接:http://www.cnblogs.com/riasky/p/3458828.html

最近在研究android的nfc问题


首先再网上有很多关于android nfc 读写的问题,但是大多数都是关于Mifare Classic类型卡的读写,我百试不得骑解,于是自己写了一些程序供大家参考,

我的手机android 4.4,google Nexus4


nfc 卡的类型是:ultralight c


 读取ndef关键代码:

 

public String readNdef(Tag tag) {
    	String result = null;
    	
        Ndef ndef = Ndef.get(tag);
        try {
			ndef.connect();
			NdefMessage msg = ndef.getNdefMessage();
			result = new String(msg.toByteArray());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				if(ndef != null && ndef.isConnected()) {
					ndef.close();
					ndef = null;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
        return result;
        
    }


对nfc有意写了解的人就会知道传入的tag是靠   tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

 

这么来的,具体的就不多说了,相信大家网上已经搜到了好多


还有写入ndef数据的关键代码


 

public void writeNdef(Tag tag,String Text) {
        Ndef ndef = Ndef.get(tag);
        try {
			ndef.connect();
			byte[] data = Text.getBytes();
			  NdefMessage msg = new NdefMessage(
		                new NdefRecord[] { createMimeRecord(
		                        "application/com.bjypc.han.googlejuesai", data)
		        });
			ndef.writeNdefMessage(msg);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FormatException e) {
			e.printStackTrace();
		} finally {
			try {
				if(ndef != null && ndef.isConnected()) {
					ndef.close();
					ndef = null;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
    }

 

public NdefRecord createMimeRecord(String mimeType, byte[] payload) {
        byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII"));
        NdefRecord mimeRecord = new NdefRecord(
                NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload);
        return mimeRecord;
    }

 


好了,到此为止我们就成功的读取或写入了ndef卡的ndef信息了,


希望能帮到大家!

 

转载于:https://www.cnblogs.com/riasky/p/3458828.html

标签:nfc,NdefRecord,ndef,printStackTrace,tag,关于,catch,android
来源: https://blog.csdn.net/weixin_30716141/article/details/97508287

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有