Отправка текстового файла с помощью считывателя PN532 на метку NFCJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отправка текстового файла с помощью считывателя PN532 на метку NFC

Сообщение Anonymous »

Добрый день вам.
Я создал код NFCTagFlow для использования при отправке текстового файла в тег NFC.
Это упрощенная версия использования считывателя RF881
Моя проблема может ли быть ненужный процесс отправки файла в тег?
Это правильно?

Код: Выделить всё

public class NFCTagFlow {
private Context context;

public NFCTagFlow(Context context) {
this.context = context;
}

public NdefMessage sendFileToTag(Tag detectedTag) {
try {
String filePath = "/storage/self/primary/Upload_in_NFC.txt";
StringBuilder fileDataStringBuilder = new StringBuilder();

// Read the file data into a buffer and get the string representation
readFileToBuffer(filePath, fileDataStringBuilder);
String fileContent = fileDataStringBuilder.toString();

// Encode the file data into an NDEF message
NdefMessage ndefMessage = encodeNdefData(fileContent);

// Write the NDEF message to the NFC tag
boolean success = writeNdefMessageToTag(detectedTag, ndefMessage);

// If successful, return the NdefMessage, otherwise return null
return success ? ndefMessage : null;

} catch (IOException e) {
e.printStackTrace();
}
return null; // Return null if writing failed
}

private void readFileToBuffer(String filePath, StringBuilder fileDataStringBuilder) throws IOException {
File file = new File(filePath);
if (!file.exists() || !file.isFile()) {
throw new IOException("Invalid file path or file does not exist");
}

try (FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr)) {
String line;
while ((line = br.readLine()) != null) {
fileDataStringBuilder.append(line);
}
}
}

private NdefMessage encodeNdefData(String data) {
NdefRecord ndefRecord = createTextNdefRecord(data);
return new NdefMessage(new NdefRecord[]{ndefRecord});
}

private NdefRecord createTextNdefRecord(String text) {
byte[] language = Locale.getDefault().getLanguage().getBytes(StandardCharsets.US_ASCII);
byte[] textBytes = text.getBytes(StandardCharsets.UTF_8);
int languageLength = language.length;
int textLength = textBytes.length;

byte[] payload = new byte[1 + languageLength + textLength];
payload[0] = (byte) (languageLength & 0x1F);

System.arraycopy(language, 0, payload, 1, languageLength);
System.arraycopy(textBytes, 0, payload, 1 + languageLength, textLength);

return new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], payload);
}

public boolean writeNdefMessageToTag(Tag detectedTag, NdefMessage ndefMessage) {
Ndef ndef = Ndef.get(detectedTag);
if (ndef != null) {
try {
ndef.connect();
ndef.writeNdefMessage(ndefMessage);
showToast("NDEF message written successfully");
return true;
} catch (Exception e) {
e.printStackTrace();
showToast("Failed to write NDEF message");
} finally {
try {
ndef.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
showToast("NDEF not supported on this tag");
}
return false;
}

private void showToast(String message) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
Должен ли я упростить код преобразования текстового файла?
Помогите мне, если есть что-то неправильное или ненужный код для процесса отправки текстового файла в тег nfc

Подробнее здесь: https://stackoverflow.com/questions/790 ... to-nfc-tag
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отправка текстового файла с помощью считывателя PN532 на метку NFC
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Отправка текстового файла с помощью считывателя PN532 на метку NFC
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Чтение NFC и запись с помощью считывателя RFID
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Swift ios NFC-ридер не читает теги NFC [закрыто]
    Anonymous » » в форуме IOS
    0 Ответы
    73 Просмотры
    Последнее сообщение Anonymous
  • Запустите устройство чтения NFC, обнаружив эмулируемый тег NFC.
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»