使用Peerfinder需要NFC吗?

时间:2012-12-10 00:15:20

标签: windows-8 windows-store-apps proximity

在Windows应用商店应用中,我正在尝试使用PeerFinder类来定位我周围的蓝牙设备,但每次调用Peerfinder.FindAllPeersAsync()时都会收到一个通用异常:

One or more errors occurred while processing the request. (Exception from HRESULT: 0x80070306)

我认为问题是Peerfinder.SupportedDiscoveryTypes == PeerDiscoveryTypes.None,但我不确定为什么会这样。我的电脑没有NFC收音机,但它有蓝牙。我原以为这会使Peerfinder.SupportedDiscoveryTypes == PeerDiscoveryTypes.Browse。这需要NFC吗?

我已经在Windows Phone 8中完成了几乎完全相同的代码工作,但确实有NFC(虽然我只需要在设备第一次连接时使用它;它们之后每次都会相互记忆)。

更新

以下是人们在评论中要求的更多信息:

1)AllowBluetooth == true 2)启用蓝牙(我通过蓝牙将某些东西连接到PC,只是为了向自己证明收音机正在工作) 3)已添加Proximity和Networking功能。

2 个答案:

答案 0 :(得分:2)

有一个如何使用此here的扩展示例。您似乎可以在某些设备上使用WiFi,但如果SupportedDiscoveryTypes == PeerDiscovertyTypes.None则上述任何设备均无法使用。有关如何使用FindAllPeers的更多说明,请参阅此处。

  

您可以使用SupportedDiscoveryTypes属性来确定是否   目前的PC有一个工作的接近设备或是否是Wi-Fi   设备支持Wifi-Direct浏览。

来自链接的示例检查:

if ((Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes &
     Windows.Networking.Proximity.PeerDiscoveryTypes.Browse) !=
     Windows.Networking.Proximity.PeerDiscoveryTypes.Browse)
{
    WriteMessageText("Peer discovery using Wifi-Direct is not supported.\n");
    return;
}

答案 1 :(得分:1)

似乎Windows 8设备依赖WiFi Direct来建立套接字连接,而WP8设备则使用蓝牙。我知道使用支持NFC的Windows 8平板电脑,您可以通过点击手势触发连接(请参阅实施此技术的PixPresenter代码示例)。另请参阅official documentation samples。但是,人们可以期望您可以使用蓝牙连接Windows Sotre应用程序和WP8应用程序。

MSDN文档建议,通过使用PeerFinder.AlternateIdentities,您可以告诉每个应用程序在另一台设备上运行的应用程序的ID。

这是关于这个主题的另一篇文章 http://msdn.microsoft.com/en-us/library/windows/apps/jj207060.aspx

希望这有帮助。