2016-04-04 20 views
0

Şu anda belirli bir bloğa birkaç bayt yazmayı deniyorum. Benim okuma komutları iyi çalışır ve ben aşağıdaki kodu kullanarak etiketinin herhangi bloğu okumak mümkün duyuyorum:Android - ISO15693'e Açıklamalar

command = new byte[]{ 
      (byte) 0x02, // Flags 
      (byte) 0x23, // Command: Read multiple blocks 
      (byte) 0x09, // First block (offset) 
      (byte) 0x03 // Number of blocks // MAX READ SIZE: 32 blocks:1F 
    }; 
byte[] data = nfcvTag.transceive(command); 

aşağıda kodu ile yazmayı deneyin, benim app çöker.

Write = new byte[]{ 
       (byte) 0x02, // Flags 
       (byte) 0x21, // Command: Write 1 blocks 
       (byte) 0x5A, // First block (offset) 
       (byte) 0x41 // Data 
     }; 
    nfcvTag.transceive(Write); 

Bir AsyncTask bu yapıyor ve java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() istisna alıyorum.

Herhangi bir ipucu? Etiket, bir STMicroelectronics M24LR04E-R

cevap

1

Şekil. Sadece 8 bit veri yazıyordum, etiket ise blok başına 32 bite sahip. 3 0x00 eklendi ve yazma başarılı oldu.

Write = new byte[]{ 
      (byte) 0x02, // Flags 
      (byte) 0x21, // Command: Write 1 blocks 
      (byte) 0x5A, // First block (offset) 
      (byte) 0x41, 
      (byte) 0x00, 
      (byte) 0x00, 
      (byte) 0x00 
    }; 
nfcvTag.transceive(Write);