3

在 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) 允许蓝牙 == 真。
2)蓝牙已启用(我通过蓝牙将某些东西连接到PC只是为了向自己证明无线电正在工作)。
3) 增加了接近和网络功能。

4

2 回答 2

2

这里有一个如何使用它的扩展示例。看来您可以在某些设备上使用 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;
}
于 2012-12-10T00:22:08.333 回答
1

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

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

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

希望这可以帮助。

于 2013-08-04T18:29:08.803 回答