Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 關於android的nfc問題

關於android的nfc問題

編輯:關於Android編程

最近在研究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信息了,


希望能幫到大家!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved