2013-03-14 3 views
1

В настоящее время я пытаюсь разработать приложение для Android, которое напишет smal-текст на карте Mifare. Я пытался запрограммировать приложение, но код не работает. Кто-то знает, что мне нужно написать в Android Manifest? Вот мой код, если кто-нибудь может мне помочь, это будет очень мило. Большое спасибоНапишите на карточке MifareClassic с нашим собственным андроидным приложением

общественный статический конечный тег CREATOR = null;

public void ecrirenfc(Tag tag) { 

    MifareClassic mfc = MifareClassic.get(tag); 

    try { 
     mfc.connect(); 
     boolean auth = false; 

     auth = mfc.authenticateSectorWithKeyA(1, MifareClassic.KEY_DEFAULT); 

     if (auth) { 
      String text = "Hello, World!"; 
      byte[] value = text.getBytes(); 
      byte[] toWrite = new byte[MifareClassic.BLOCK_SIZE]; 

      for (int i = 0; i < MifareClassic.BLOCK_SIZE; i++) { 
       if (i < value.length) 
        toWrite[i] = value[i]; 
       else 
        toWrite[i] = 0; 
      } 

      mfc.writeBlock(1, toWrite); 
     } 

    } catch (IOException e) { 
    } 
} 

public void onClick(View view) { 
    if (view.getId() == R.id.button1) { 
     ecrirenfc(CREATOR); 
    } 
} 
+0

Вы рекомендуете использовать формат ЦНК вместо своего, доморощенного? – ThomasRS

ответ

2

Вы должны использовать метод

для определения первого блока сектора. Затем используйте

getBlockCountInSector(int sectorIndex) 

, чтобы определить, сколько блоков (-1) вы можете записать в этом секторе.

Для вашего кода выше, вы пытаетесь писать в сектор 0, когда вы аутентифицировались сектор 1.

Смежные вопросы