Windows 8 NFC是否需要使用Peerfinder?

Windows 8 NFC是否需要使用Peerfinder?,windows-8,windows-store-apps,proximity,Windows 8,Windows Store Apps,Proximity,在Windows应用商店应用程序中,我试图使用PeerFinder类来定位周围支持蓝牙的设备,但每次调用PeerFinder.FindAllPeersAsync()时,我都会遇到一个通用异常: 我认为问题在于Peerfinder.SupportedDiscoveryTypes==PeerDiscoveryTypes.None,但我不确定这是为什么。我的电脑没有NFC收音机,但它有蓝牙。我本以为这会使Peerfinder.SupportedDiscoveryTypes==PeerDiscovery

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

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

我在WindowsPhone8中使用了几乎相同的代码,但它确实有NFC(尽管我只需要在设备连接时第一次使用它;之后它们每次都会记得彼此)

更新:

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

1) AllowBluetooth==真。
2) 蓝牙功能已启用(我通过蓝牙将某些东西连接到电脑,只是为了向自己证明收音机工作正常)。

3) 增加了近距离和联网功能。

这里有一个扩展示例,说明如何使用此功能。您似乎可以在某些设备上使用WiFi,但如果
SupportedDiscoveryTypes==peerDiscoveryTypes.None
则上述各项均不可用。有关如何使用
FindAllPeers
的更多说明,请参见此处

您可以使用SupportedDiscoveryTypes属性来确定 当前电脑有一个可工作的接近设备,或者Wi-Fi 该设备支持Wifi直接浏览

链接中的示例检查:

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;
}

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

MSDN文档建议,通过使用PeerFinder.alternateID实体,您可以告诉每个应用程序在其他设备上运行的应用程序的ID

这是另一篇关于这个主题的文章


希望这有帮助。

不,我知道如果SupportedDiscoveryTypes为None,您将无法连接。我的问题是,为什么你需要一个NFC设备才能使用蓝牙(应用到应用)。这是真的吗?另外,你的设备是否启用了蓝牙功能?请参见此处,了解其他人使其工作的示例:是,AllowBluetooth==true,并且蓝牙已启用(我通过蓝牙将某些东西连接到电脑,只是为了向自己证明收音机正在工作)。您是否声明了
近距离
功能?
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;
}