Envío P2P de archivo TXT a través del módulo NFC.

Buen día a todos.

Estoy usando un módulo NFC de Seeed Studio y tengo una sección de código en mi pograma, que toma un string:

mensaje = String("Esto es una prueba");

y luego lo envía a otro dispositivo con NFC, en este caso una aplicación para android, de código abierto, desarrollada en Android Studio.

void NFCp2p(){
  PN532_SPI pn532spi(SPI, 10);
  SNEP nfc(pn532spi);

  Serial.println("Acerque el dispositivo a la antena"); 
  
    mensaje = String("Esto es una prueba");
    NdefMessage message = NdefMessage();
    message.addUriRecord(mensaje);
    int messageSize = message.getEncodedSize();
    if (messageSize > sizeof(ndefBuf)) {
        Serial.println("ndefBuf is too small");
        while (1) {
        }
    }
    message.encode(ndefBuf);
    if (0 >= nfc.write(ndefBuf, messageSize)) {
        Serial.println("Failed");
    } else {
        Serial.println("Mensaje enviado correctamente:");
        Serial.println(mensaje);
    }
   dataFile.close();
   delay(3000);    
}

Hasta aquí todo funciona a la perfección tal como está planteado, pero yo quiero enviar un archivo TXT que tengo almacenado en una memoria SD (también el módulo de Seeed Studio).

Pues yo tengo entendido que debo abrirlo en la variable que tengo: dataFile y esa variable ponerla en la variable mensaje.

void NFCp2p(){
  PN532_SPI pn532spi(SPI, 10);
  SNEP nfc(pn532spi);

  Serial.println("Acerque el dispositivo a la antena"); 
  
  dataFile = SD.open("LECTURA.TXT");
 
    mensaje = String(dataFile);
    NdefMessage message = NdefMessage();
    message.addUriRecord(mensaje);
    int messageSize = message.getEncodedSize();
    if (messageSize > sizeof(ndefBuf)) {
        Serial.println("ndefBuf is too small");
        while (1) {
        }
    }

    message.encode(ndefBuf);
    if (0 >= nfc.write(ndefBuf, messageSize)) {
        Serial.println("Failed");
    } else {
        Serial.println("Mensaje enviado correctamente:");
        //Serial.println(mensaje);
    }
   dataFile.close();
   delay(3000);    
}

Pero al recibirlo en la aplicación de Android, recibo literalmente un " 1 "

No se por qué, o qué estoy haciendo mal. El caso es que se me acaban las ideas sobre qué hacer.

Agradezco inmensamente cualquier tipo de ayuda.

Buen día.

mensaje = String(dataFile);

Así no es como se lee un archivo.

Dependiendo del tamaño de este y según tu implementación, lo mejor sería enviarlo por partes; a menos de que el archivo sea de menos de 800 bytes (basados en ATmega328P); o de 6 KB (Arduino Mega).