Why won't my phone read NDEF messages from Arduino?

Hello to everyone, and thank you for your time.

Right now, I'm trying to create a NFC P2P connection between an Android phone and an Arduino UNO board through a PN356 chipset from Adafruit (Adafruit breakout board, in SPI mode), which is already up and running. I already installed all the libraries from GitHub: Elechouse and Don. As a first trial, I am using an example code provided with those libraries. But the trouble is, my phone seems to detect nothing.

In the Arduino, I always get the message "Failed". My Android phone does nothing, and I know it hasn't to do with chip position because I've tried everything about that matter. Is the problem with my phone compatibility with the PN356, or is there anything else that I could (and should) do to make it work?

My code is:

// send a NDEF message to android or get a NDEF message
// note: [NDEF library](https://github.com/Don/NDEF) is needed.

#include "SPI.h"
#include "PN532_SPI.h"
#include "snep.h"
#include "NdefMessage.h"

PN532_SPI pn532spi(SPI, 10);
SNEP nfc(pn532spi);
uint8_t ndefBuf[128];

void setup()
    Serial.println("-------Peer to Peer--------");

void loop()
#if 1
    Serial.println("Send a NDEF Message to Android");
    NdefMessage message = NdefMessage();
    int messageSize = message.getEncodedSize();
    if (messageSize > sizeof(ndefBuf)) {
        Serial.println("ndefBuf is too small");
        while (1) {


    if (0 >= nfc.write(ndefBuf, messageSize)) {
    else {

    // it seems there are some issues to use NdefMessage to decode the received data from Android
    Serial.println("Get a message from Android");
    int msgSize = nfc.read(ndefBuf, sizeof(ndefBuf));
    if (msgSize > 0) {
        NdefMessage msg  = NdefMessage(ndefBuf, msgSize);
    } else {

Once again, thank you very much for your time.