最近在研究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 blocke.printStackTrace();} catch (FormatException e) {// TODO Auto-generated catch blocke.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信息了,


希望能帮到大家!

更多相关文章

  1. 【Android 开发】: Android 消息处理机制之三: Handler 中 sendM
  2. 获取Android SDK 源代码并在Eclipse中关联查看的方法
  3. 如何调试跟踪Android源代码
  4. Android应用程序启动过程源代码分析(1)
  5. Google 将 Android 4.0.4 源代码送交 AOSP 开源项目
  6. android java代码的启动:app_process
  7. 4.2.2.5 Android如何检测网络的类型为3G、2G、wap、wifi

随机推荐

  1. Android文件操作放到listview中
  2. 83 Android(安卓)Handler ProgressBar 进
  3. Android-FilePicker 选择照片
  4. Android(安卓)使用 keytool 查看签名方法
  5. Android(安卓)浏览器中启动自定义应用
  6. DrawLayout几个注意点
  7. Android(安卓)GridView
  8. android init.c
  9. 获取Fragment的context
  10. Android如何用Rxjava监听BroadcastReceiv