使用WP8 Proximity API进行网络连接 - 未连接设备

时间:2013-11-08 17:15:42

标签: c# windows-phone-8 proximity

我正在尝试使用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)

我认为问题可能是它在模拟器中运行而不是在实际设备上运行。在模拟器中是否可以像这样(有或没有基础设施的点对点)网络,或者我忘了什么?

非常感谢任何帮助。谢谢!

2 个答案:

答案 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背靠背拍摄的。