Windows 8 Metro 學習筆記(十六)--NFC


NFC(Near Field Commuciation),近距離無線通訊技術,是一種短距離的高頻無線通訊技術。那不禁想到它與Bluetooth藍牙有什么區別呢?
在網上查詢了一下,區別大概分為以下幾點:
(1)傳輸距離
   NFC的傳輸距離一般為10cm,而Bluetooth的傳輸距離可以達到10米
(2)配置
   NFC不需要手動設置匹配,直接將兩部設備碰觸一下即可;Bluetooth需要單獨設置和匹配
(3)適用場合
   NFC的適用場景比較多,如支付、打卡、刷卡等;Bluetooth的適用場景就比較局限

NFC對應的WinRT API-- Windows.Networking.Proximity
PeerFinder
通過該類可以實現去發現附近的設備並與之創建socket連接,發送接收信息。
 PeerFinder.TriggeredConnectionStateChanged +=  new TypedEventHandler< object, TriggeredConnectionStateChangedEventArgs>(TriggeredConnectionStateChangedEventHandler);
PeerFinder.ConnectionRequested +=  new TypedEventHandler< object, ConnectionRequestedEventArgs>(PeerConnectionRequested); 

PeerFinder.Start();
IReadOnlyList<PeerInformation> _peerInformationList=await PeerFinder.FindAllPeersAsync();
StreamSocket _socket = await PeerFinder.ConnectAsync(peerToConnect);

首先注冊兩個事件:
TriggeredConnectionStateChanged :用於跟蹤與遠程機觸碰期間的一個連接狀態
ConnectionRequested: 當遠程機有連接請求時觸發
調用相應的方法:
FindAllPeersAsync():瀏覽所有在無線區域范圍內運行相同APP的同等計算機
await PeerFinder.ConnectAsync():與范圍內的同等計算機相連接

 

ProximityDevice
可以發送消息或訂閱消息至直接的設備,即發送一消息,然后與另一設備觸碰一下,別一設備即可收到相應的消息
事件:
DeviceArrived: 當在近距離范圍內有設備進入時觸發
DeviceDeparted: 當在近距離范圍內有設備移出時觸發

 

//先實例化一個ProximityDevice對象,並激活
ProximityDevice _proximityDevice=ProximityDevice.GetDefault();
//發送消息,當然發送方法有很多重載,可以發送字符,可以發送二進制流,可以發送Uri
long _publishedMessageId = _proximityDevice.PublishMessage("Windows.SampleMessageType", publishText);

 

//另一設備與執行subscribe方法,即可獲得消息
long _subscribedMessageId = _proximityDevice.SubscribeForMessage( " Windows.SampleMessageType ", MessageReceived);
  void MessageReceived(ProximityDevice proximityDevice, ProximityMessage message)
        {
             if (message.MessageType ==  " StringMessage ")
            {
                 string mes = message.DataAsString;
            }
             else  if(message.MessageType== " BufferMessage ")
            {
                IBuffer buffer = message.Data;
            }
        }
 當然還有其它的屬性和方法,這里就不一一試了,做一個完整的Demo流程,測試一下還是挺好玩的。
PeerFind:使用這個對象需要先尋找,連接,然后進行傳輸信息
ProximityDevice:這種方式相對簡單些,一端發送消息,另一端只要subscribe就可獲得消息,但前提是距離得相當地近。

 

如果您對該技術有更深的理解也希望能指點下哦~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM