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に吐くようにしました。するとこんな感じ

見事に書き込めていますね。

 

ホームへ