在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功能。
答案 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
希望这有帮助。