none
Detección de dispositivo NFC RRS feed

  • Pregunta

  • Hola.

    Tengo un problema con mi programa de Windows pone 8. Pretendo comunicar mi Nokia 520 con una shield para Arduino con un chip PN532 de nxp. Al acercar el teléfono a la shiel para realizar el "tap" el Arduino detecta la presencia del teléfono, pero el teléfono no lanza el evento de "DeviceArrived". Lo he provado con otro teléfono con NFC, un HTC X8, pero tampoco lanza el evento. Cual puede ser la causa??? Las capabilities las tengo activas, la Networking y la Proximity. Os dejo el código del programa:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Navigation;
    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    using NFC_Arduino.Resources;
    using Windows.Networking.Proximity;
    using Windows.Networking.Connectivity;
    using System.Threading;
    
    namespace NFC_Arduino
    {
        public partial class MainPage : PhoneApplicationPage
        {
            public ProximityDevice Phone_NFC=ProximityDevice.GetDefault();
            
          
    
            // Constructor
            public MainPage()
            {
                long MessageID;
    
                Phone_NFC.DeviceArrived += new DeviceArrivedEventHandler(ProximityDeviceArrived);
    
                if (Phone_NFC != null)
                {
                    InitializeComponent();
                }
                else
                {
                    MessageBox.Show("\n El telefono no dispone de funcionalidad NFC");
                    Thread.Sleep(3000);
                }
    
    
    
            }
    
    
            private void ProximityDeviceArrived(ProximityDevice sender)
            {
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        MessageBox.Show("Device Detected!!!!");
                    });
            }
           
        }
    }

    miércoles, 10 de abril de 2013 11:18

Todas las respuestas

  • Hola Gomore

    No tengo un PN532 para probar, pero me parece muy raro que en el constructor de la página manejes el evento antes de hacer el InitializeComponent. Yo haría primero el InitializeComponent siempre, y luego comprobaría si Phone_NFC es null. Si es null muestras el messagebox y si no es null manejas el evento DeviceArrived... No sé si este cambio solucionará el problema, si no es así seguimos mirando :)

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    miércoles, 10 de abril de 2013 14:19
    Moderador
  • Hola Josue.

    Ante todo gracias por contestar. En cuanto al PN532, si no me equivoco es el mismo chip o de la misma familia al que utilizan los Windows phone, por lo que no creo que los problemas vengan por ahí. He hecho varias pruebas y colocando el InitializeComponent al principio del todo del constructor como me comentas, los resultados son los mismos. El Arduino sí que detecta la presencia del teléfono, pero el teléfono no lanza el evento DeviceArrived. Me surge una duda. Sabes si dentro de la API Proximity, para que el evento sea lanzado se deben cumplir las especificaciones de protocolo LLCP que dicta NFC Forum, o es independiente de esto??? Puede que de ahí vengan los problemas....

    jueves, 11 de abril de 2013 8:32