저는 Android NFC 프로그래밍에 상당히 익숙하며 NXP MIFARE Ultralight NTAG216 태그를 구입했습니다. 여기에는 바이트가 포함됩니다. 내 응용 프로그램에서 나는 내가 태그에 원하는 것을 저장하기 위해 약 600 문자를 필요로하는 다음태그 크기/인코딩 동작
public void write(String text, Tag tag) throws IOException, FormatException {
NdefRecord[] records = { createRecord(text) };
NdefMessage message = new NdefMessage(records);
Ndef ndef = Ndef.get(tag);
ndef.connect();
ndef.writeNdefMessage(message);
ndef.close();
}
private NdefRecord createRecord(String content) throws UnsupportedEncodingException {
String lang = "en";
byte[] textBytes = content.getBytes();
byte[] langBytes = lang.getBytes("US-ASCII");
int langLength = langBytes.length;
int textLength = textBytes.length;
byte[] payload = new byte[1 + langLength + textLength];
payload[0] = (byte) langLength;
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;
}
에 태그를 작성합니다. 것은 내가 내가 254를 사용하는 것을 볼 수있다, (그냥 쓰려고, 예외를 throw하지 않습니다) NFC 도구라는 응용 프로그램을 사용
ndef.writeNdefMessage(message);
동결이 줄없이 이상 254 개 문자를 쓸 수 있다는 것입니다/886 바이트의 사용 가능한 데이터. 나는 앱을 사용하는 태그에 더 쓸 수 없으며, 또한 정지된다.
인코딩 문제라고 생각하여 안드로이드 설명서 Link을 살펴 보았고 태그에 UTF-8 인코딩 된 데이터 만 쓸 수있는 것처럼 보입니다. ASCII 인코딩 데이터를 쓰면 더 많은 공간을 절약 할 수 있습니다.
안드로이드는 쓸 수있는 바이트 수에 제한이 있습니까? 인코딩 문제입니까? 태그에 ASCII로 인코딩 된 텍스트를 직접 쓸 수 있습니까? 나는 정말로 거기에서 길을 잃는다. 도움 주셔서 감사합니다.