2014-04-17 72 views
-2

當我打開NFC包裝示例代碼時,程序通過聲明「SCM_NFC.DLL成功加載」工作。但是,當我嘗試調試代碼並將卡放置在設備上時。我總是將MessageCount作爲零。NFC軟件開發套件NFC包裝示例代碼

誰能告訴我什麼是錯的?提前

private void ReadNDEF() { 
    UInt32 DeviceCount = 0; 
    UInt32 MessageCount = 0; 
    UInt32 NextMessageSize = 0; 
    UInt32 Result; 

    if (NFCWrapper == null) return; 

    // Get information about the message queue 
    Result = TNFCWrapper.GetNDEFQueueInfo(ref DeviceCount, ref MessageCount, ref NextMessageSize); 
    if (MessageCount != 0) { 
     if (Result != TNFCWrapper.ERR_SUCCESS) return; 

     //Resize the NDEF buffer accordingly to the site of the next message in the queue 
     byte[] NDEF = new byte[NextMessageSize]; 
     UInt32 NDEFSize = NextMessageSize; 
     TNFCAddress NFCAddress = new TNFCAddress(); 
     TMessageInfo MessageInfo = new TMessageInfo(); 

     //Read the NDEF message from the message queue 
     Result = TNFCWrapper.ReadNDEF(ref NFCAddress, ref MessageInfo, ref NDEF[0], ref NDEFSize); 
     if (Result != TNFCWrapper.ERR_SUCCESS) return; 

     //Display the message details 
     string sAddress = ""; 
     for (int i = 0; i < 12; i++) sAddress = sAddress + NFCAddress.Address[i].ToString("X2") + " "; 

     PrintHexDump(NDEF, NDEFSize); 

     // convert NDEF into XML 
     string XML = ""; 
     Result = NFCWrapper.NDEF2XML(ref NDEF[0], NDEFSize, ref XML); 

     if (Result != TNFCWrapper.ERR_SUCCESS) return; 

     XmlDocument doc = new XmlDocument(); 
     doc.LoadXml(XML); 
     var valueRead = XElement.Parse(XML) 
        .Descendants("NDEF_Text") 
        .First() 
        .Value; 
     string associateId = valueRead.Substring(5); 
     LogMessage(associateId); 
     NavigationService navService = NavigationService.GetNavigationService(this); 
     navService.Navigate(new System.Uri("Booking.xaml", UriKind.Relative)); 
    } 
} 

回答

1

由於作爲由的GetNDEFQueueInfo()的結果表明,沒有檢測到的設備和無NDEF消息。因此,ReadNDEF()必須失敗,因爲它不能讀取那些不存在的內容。

不知道你是如何初始化的NFC閱讀器和你「卡」/NFC標籤上的程序是什麼,這是很難說什麼錯,但這裏的浮現在我的腦海裏可能原因的列表:

  1. NFC標籤/「卡」必須包含有效的NDEF消息。
  2. 您沒有撥打StartListening()來激活對NFC標籤/ NFC設備的掃描。
  3. 您之前已使用SetTarget()禁用掃描「卡」的標籤類型。
+0

再次感謝您將再次嘗試您的評論... –