1. 配置
实现在两个WP8模拟器中进行模拟NFC传输,如下图:
众所周知,WP8模拟器是不支持模拟NFC,蓝牙和Wifi Direct传输的(WP8系统就根本不支持Wifi Direct)。而MSDN文档中则提到了一个可以模拟NFC传输的小工具:Proximity Tapper 。
为了使用这个工具,首先在Visual Studio中运行多个模拟器,Visual Studio是不支持同一个模拟器的多个实例的,因此需要把程序部署运行在不同名称的模拟器中:
接着运行Proximity Tapper,注意防火墙不能阻拦Proximity Tapper。然后如果一切都没有问题的话,Proximity Tapper中的设备列表会出现运行的模拟器实例,同时背景颜色是绿色的:
接着选中需要NFC连接的两个模拟器实例,选择“Tap Selected Devices and Remain Connected”按钮,然后两个模拟器实例会连接成功,下侧会显示新建的连接,同时也可以通过Proximity Tapper来断开连接或者手动发送数据。右侧是连接内的数据传输状况,如下图:
当两个模拟器都运行这当前程序后,建立连接后,两个程序都会提示“连接成功”,然后就可以进行NFC传输的,当然程序程序仅仅是一个示例,传输的是简单的文字。
返回目录
2. 代码
Windows 8和Windows Phone 8在设备临近感应传输上用的是一样的WinRT API。类型都统一在Windows.Networking.Proximity命名空间上。在NFC传输上,有两种方式。
一种是通过PeerFinder类型,另一种是通过ProximityDevice类型:
ProximityDevice实现起来更简单些,而PeerFinder和Socket类似。
本文示例使用ProximityDevice实现,而PeerFinder类型的NFC交流实现可以参考诺基亚官方的Nfc Chat工程。(当然,相比诺基亚的Nfc Chat,本文的示例程序简直是弱爆了。)
源代码下载
下载页面
注意:链接是微软SkyDrive页面,下载时请用浏览器直接下载,用某些下载工具可能无法下载
源代码环境:Microsoft Visual Studio Express 2012 for Windows Phone<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>