androidのnfc問題について

2272 ワード

最近androidのnfc問題を研究しています
まずネット上でandroid nfcの読み書きに関する質問がたくさんありますが、多くはMifare Classicタイプカードの読み書きについて、私は百度も騎解できないので、自分でいくつかのプログラムを書いて皆さんの参考にしました.
私の携帯android 4.4,google Nexus 4
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情報の読み取りや書き込みに成功しました
みんなの役に立つことを望みます!