0

我正在尝试使用Windows Phone 8 API的PeerFinder类在对等的基础上发现设备。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)

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

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

4

2 回答 2

2

如本页所述:“Windows Phone Emulator 没有任何内置支持来测试 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

于 2013-11-08T19:02:31.680 回答
1

对于用户从列表中选择附近设备的 PeerFinder 浏览模式(例如 FindAllPeersAsync),不支持使用模拟器。

但是,使用 NFC 的“触发”模式(例如,使用 TriggeredConnectionStateChanged),用户将两个设备背靠背一起轻敲而不是从列表中选择,实际上在模拟器中是受支持的,尽管您需要一个外部工具才能使其工作可在此处获得:http: //proximitytapper.codeplex.com/

您只需要启动两个不同的模拟器(模拟器必须具有不同的分辨率才能同时运行)并在工具中多选两个模拟器(应该在列表中弹出)并单击点击模拟就好像它们被 NFC 背靠背轻拍一样。

于 2015-01-16T03:18:33.173 回答