我正在尝试使用Windows Phone 8 PeerFinder
API的Proximity
类在点对点的基础上发现设备。
我正在使用Windows Phone 8模拟器在Visual Studio 2013中运行该应用程序。我像这样使用PeerFinder
类:
PeerFinder.AllowInfrastructure = true;
PeerFinder.Start();
在此之后,我尝试发现这样的其他同行:
while (true)
{
try
{
var result = await PeerFinder.FindAllPeersAsync();
if (result.Count > 0)
System.Diagnostics.Debug.WriteLine("FOUND A PEER!");
}
catch (Exception ex)
System.Diagnostics.Debug.WriteLine("encountered error!!!");
}
我在FindAllPeersAsync()上的错误如下:
An exception of type 'System.Exception' occurred in mscorlib.ni.dll but was not handled in user code
Additional information: The device is not connected. (Exception from HRESULT: 0x8007048F)
我认为问题可能是它在模拟器中运行而不是在实际设备上运行。在模拟器中是否可以像这样(有或没有基础设施的点对点)网络,或者我忘了什么?
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
正如本页所述:“Windows Phone模拟器没有任何内置支持来测试Proximity,要求您使用支持NFC的Windows Phone 8测试NFC功能。”并且“无法使用Windows Phone模拟器测试蓝牙。”
我建议在实际设备上测试您的代码,否则您可能无法正确调试您的应用程序。
Windows Phone 8的接近度 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj207060(v=vs.105).aspx
答案 1 :(得分:1)
对于PeerFinder浏览模式,用户从列表中选择附近的设备(例如FindAllPeersAsync),则不支持使用模拟器。
然而,模拟器实际上支持使用NFC的“触发”模式(例如,使用TriggeredConnectionStateChanged),其中用户一起背靠背地敲击两个设备而不是从列表中选择 虽然你需要一个外部工具来使它在这里工作:http://proximitytapper.codeplex.com/
您只需要启动两个不同的模拟器(模拟器必须是不同的分辨率才能同时运行),并在工具中多选两个模拟器(应该在列表中弹出)并单击点击以模拟他们是如何通过NFC背靠背拍摄的。