Я обнаружил, что текст Android NFC API и руководство для разработчиков немного сложны для понимания, поэтому здесь может помочь небольшой пример кода. На самом деле это порт кода MIDP, который я использовал в устройствах Nokia 6212, поэтому я, вероятно, еще не все правильно понял об Android NFC API, но, по крайней мере, это сработало для меня.
Сначала мы создаем запись NDEF:
private NdefRecord createRecord() throws UnsupportedEncodingException {
String text = "Hello, World!";
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 record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
NdefRecord.RTD_TEXT,
new byte[0],
payload);
return record;
}
Затем мы пишем запись как сообщение NDEF:
private void write(Tag tag) throws IOException, FormatException {
NdefRecord[] records = { createRecord() };
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();
}
Для записи в тег вам, очевидно, нужен объект Tag, который вы можете получить из Intent.
person
Pasi Välkkynen
schedule
13.06.2011