2015-11-27 1 views
-2

В настоящее время я работаю над NFC и хотел бы написать массив байтов в тег NFC. Я могу написать строку, используя следующий код:Android: напишите байтовый массив через NFC

private void write(String text, Tag tag) throws IOException, FormatException { 
    NdefRecord[] records = { createRecord(text) }; 
    NdefMessage message = new NdefMessage(records); 
    // Get an instance of Ndef for the tag. 
    Ndef ndef = Ndef.get(tag); 
    // Enable I/O 
    ndef.connect(); 
    // Write the message 
    ndef.writeNdefMessage(message); 
    // Close the connection 
    ndef.close(); 
} 

private NdefRecord createRecord(String text) throws UnsupportedEncodingException { 
    String lang  = "en"; 
    byte[] textBytes = text.getBytes(); 
    byte[] langBytes = lang.getBytes("US-ASCII"); 
    int langLength = langBytes.length; 
    int textLength = textBytes.length; 
    byte[] payload = new byte[1 + langLength + textLength]; 

    // set status byte (see NDEF spec for actual bits) 
    payload[0] = (byte) langLength; 

    // copy langbytes and textbytes into payload 
    System.arraycopy(langBytes, 0, payload, 1,    langLength); 
    System.arraycopy(textBytes, 0, payload, 1 + langLength, textLength); 

    NdefRecord recordNFC = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], payload); 

    return recordNFC; 
} 

Но как мне нужно изменить код выше, чтобы написать массив байтов вместо строки?

+0

что вы ожидаете от нас именно на основе этого меньше информации? –

ответ

0

Вместо создания текстовой записи, вы можете создать внешний отчет, который содержит массив байтов, который вы хотите сохранить на бирке в качестве полезной нагрузки:

byte[] byteArray = ... 
NdefRecord[] records = { 
    NdefRecord.createExternal("example.com", "mytype", byteArray) 
}; 

Вы можете установить «example.com» в любое доменное имя, которое вы хотите использовать для внешнего типа NFC Forum и «mytype» для любого имени, которое вы хотите предоставить внешнему типу (обратите внимание, что имена внешних типов должны быть строчными.