Android入門 データを書き込む
前回読み込み出来ましたよね。ぶっちゃけ書きこみは簡単です。readBlockがwriteBlockになるだけですから。
早速コード
Intent intent = getIntent(); byte[] tagid = intent.getByteArrayExtra(NfcAdapter.EXTRA_ID); Tag tag = (Tag)intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); int sector = 1; if(tag!=null) { Log.i("nfc","nfc tagid="+stringFromBytes(tagid)); MifareClassic mfc = MifareClassic.get(tag); try { if(!mfc.isConnected())mfc.connect(); if(mfc.authenticateSectorWithKeyA(sector,MifareClassic.KEY_DEFAULT)){ byte[] data = new byte[16]; data[0] = (byte)0x00; data[1] = (byte)0x10; data[2] = (byte)0xFF; mfc.writeBlock(sector*4+0,data); byte[] Block0 = mfc.readBlock(sector*4+0); String Block0String = stringFromBytes(Block0); Log.i("nfc","nfc Block0="+Block0String); }else{ Log.i("nfc","nfc auth fail"); } mfc.close(); }catch (Exception e) { Log.i("nfc","nfc connection fail"); }finally{ } } |
セクタ0は他の情報が入ってて邪魔なのでセクタ1に切り替えました。
そして 16バイトのバイト列を用意してデータを書き込みます。
そしてwriteBlocksでセクタ1のBlock0を指定して書き込みます。
確認のためにreadBlockしてLogcatに吐くようにしました。するとこんな感じ
見事に書き込めていますね。