NFC Emulator for Windows 8 and Windows Phone 8

 

 

 

文/黃忠成

 

 

 

NFC Emulator for Windows 8

 

  在上一篇文章中,我介紹了NFC Emulator for Windows Phone 8,在這個Emulator出現前,其實Windows 8 就有提供NFC Emulator,不過要用這個工具比較麻煩,得先下載Windows Driver Kit 8,裡面有Windows 8 NFC Emulator的source code,

開發者得自行編譯後才能使用。之前我在嘗試下載Windows Driver Kit 8時發生錯誤,持續測了好久才下載並安裝成功,讀者們如果只是要使用這個Driver的話,可以直接到下列網址下載:

http://www.code6421.com/BlogPics/NFCDriver.zip

 

或是自己下載Windows Driver Kit 8。

 

http://msdn.microsoft.com/en-US/windows/hardware/hh852362

 

 

安裝

 

  下載了NFCDriver.zip後解開,會看到以下的目錄結構。

圖1

切換至NFCDriver目錄,會看到一個package.cer,這是一個憑證,必須先行安裝到Windows 8中才能正確地安裝NFC Emulator Driver。

圖2

圖3

圖4

圖5

完成後以系統管理員權限開啟命令列模式,切換到NFCDriver目錄,鍵入以下指令。

 

devcon.exe install NetNfpProvider.inf WUDF\NetNfpProvider

 

沒意外的話會出現下圖。

圖6

點選安裝後,安裝NFC Emulator for Windows 8的工作就完成了。

 

 

測試

 

  通常,測試這個NFC Emulator至少需要兩台Windows 8,所以此處我開了另一個VM來測試,首先先撰寫一個Windows  Store的NFC應用程式,記得要開啟NFC權限。

圖7

下面是測試的程式碼。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Networking.Proximity;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace App21
{
    /// 
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// 
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ProximityDevice device = ProximityDevice.GetDefault();
            device.PublishUriMessage(new Uri("http://www.microsoft.com"));
        }
    }
}

 

接著請在要測試接收NFC資料的VM上開啟防火牆設定並關閉私人網路的部分(注意,測試完之後請記得開啟)。

圖8

接著在要執行這隻Windows Store程式的電腦上執行netnfpcontrol.exe(在NFCDriver.zip中)。

 

格式:

netnfpcontrol <IP>

範例:

netnfpcontrol 192.168.1.113

 

會看到以下的畫面。

圖9

然後執行我們的Windows Store程式,按下畫面上的按鈕來送出Uri訊息。

圖11

一切正常的話,目的地VM就會出現下列的畫面。

圖12

 

Windows Phone 8 NFC Emulator互通

 

  Windows Phone 8 的NFC Emulator一開始就設計成可以跟Windows 8 NFC Emulator溝通,用法很簡單,只要開啟ProximityTapper程式,輸入目標機器的IP(該機器或是VM必須安裝本文提到的NFC Emulator Driver),按下Add Device按鈕。

 

圖13

完成後點選剛新增的那個Device,然後點選Tap Selected Devices and Remain Connected按鈕。

圖14

接著就可以點選下方的Send Url來送出資料。

圖15

圖16

 

當然,你也可以使用Windows Phone 8 Emulator來執行所寫的NFC應用程式,由Windows Phone 8 Emulator送出 NFC資料到Windows 8,下面是前篇文章所寫過的測試程式。

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 PhoneApp17.Resources;

using Windows.Networking.Proximity;


namespace PhoneApp17

{

    public partial class MainPage : PhoneApplicationPage

    {

        // Constructor

        public MainPage()

        {

            InitializeComponent();


            // Sample code to localize the ApplicationBar

            //BuildLocalizedApplicationBar();

        }


        private void Button_Click(object sender, RoutedEventArgs e)

        {

            ProximityDevice device = ProximityDevice.GetDefault();

            device.PublishUriMessage(new Uri("http://www.microsoft.com"));

        }       

    }

}

 

執行後到ProximityTapper去配對Windows 8(IP那個)跟Windows Phone 8 Emulator。

圖17

按下Windows Phone 8 Emulator上程式的按鈕後。

圖18

 

注意: 測試憑證沒有要使用時,請到憑證管理員中刪除。

 

參考資料

http://www.silverlightshow.net/items/Near-Field-Communication-in-windows-8-part-1.aspx

 

 

 

2013/6/2 23:19 | 閱讀數 : 8600 1 人推薦 我要推薦 | Add Comment | 文章分類 : Windows Phone 7 Windows RT 訂閱


回覆

目前沒有回應.

發表回覆

標題: *
姓名: *
Email: (將不會被顯示)
Url:
回覆: *
登入後使用進階評論
Please add 7 and 7 and type the answer here:


關於我:



黃忠成

  • 資深.NET 技術顧問
  • Run! PC 雜誌專欄作者
  • 程序員雜誌文章作者
  • PC Magazine 雜誌專欄作者
  • MSDN 專欄作者
  • MSDN 特約專屬講師
  • Microsoft .NET專屬講師

  • 批評,指教,鼓勵, 請 寫信給我
    轉載文章請使用連結模式,
    請勿整篇Copy! 謝謝!


    我所提供的教育訓練:

    Windows Forms
    ASP.NET 2.0
    如有課程需要,請與我聯絡!

  • 我的著作:







  • 標籤

    more tags...

    每月文章

    文章分類

    最新回覆