C # NFC Proximity - обработчик не запущен

1

У меня есть серьезная проблема с написанием и чтением тегов NFC. Обработчик не запускается.

Это мой код для написания текста в теге NFC, и он работает:

// Writes a string to a NFC tag
    private bool WriteToNFCTag(string value)
    {

            var dataWriter = new DataWriter() { UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf8 };
            dataWriter.WriteString(value);

            ProximityDevice.GetDefault().PublishBinaryMessage("Windows:WriteTag.NokiaTest", dataWriter.DetachBuffer(), MesssageTransmitted);


    }

private void MesssageTransmitted(ProximityDevice sender, long messageId)
        {
            Debug.WriteLine("Message sent!");
        }

Но я не могу прочитать тег NFC:

ProximityDevice.GetDefault().SubscribeForMessage("Windows.NokiaTest", messageReceivedHandler);

не запускает сообщениеReceivedHandler

void messageReceivedHandler(ProximityDevice device, ProximityMessage message)
    {
        Debug.WriteLine("Got the message");
        var byteBuffer = message.Data;
    }

У меня нет сообщений об ошибках или что-то в этом роде. Мне было бы здорово, если бы кто-то мог мне помочь. Благодарю!

Теги:
handler
nfc
proximity

1 ответ

1

Я думаю, вам нужно остановить публикацию в методе MesssageTransmitted.

private void MesssageTransmitted(ProximityDevice sender, long messageId)
{
    Debug.WriteLine("Message sent!");
    ProximityDevice.GetDefault().StopPublishingMessage(messageId);
}

Обновление: в последние месяцы я разрабатываю настольное приложение Win8.1, которое пишет/читает теги NFC, используя формат NDEF (протоколы: "NDEF: WriteTag" для публикации /"NDEF" для подписки). Я использую NdefLibrary от https://ndef.codeplex.com/.

Протокол "Windows", согласно Nokia, находится между устройствами, а не между устройством и тегом. Поэтому вам может потребоваться использовать протоколы NDEF, которые "находятся между устройством и тегом".

Изображение 174551

также см. в разделе Ограничения с Windows Phone 8

Поскольку API Proximity предоставляет только высокоуровневый доступ к протоколу NFC, а Windows Phone добавляет некоторую защиту, ваше взаимодействие с тегами NFC ограничено:

Вы не можете отформатировать тег. Ваш тег должен быть отформатирован для сообщения NDEF.

Ваш тег может содержать только сообщение NDEF.

API Proximity не предоставляет инструменты для непосредственного управления сообщениями NDEF. Чтобы управлять необработанными сообщениями NDEF, вы можете использовать NDEF Library for Proximity API (NFC).

  • 0
    Спасибо, но это не работает. Это все еще не прыгает к Обработчику.
  • 0
    или это может быть потому, что протокол Windows не поддерживается. смотри мой обновленный ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню