Is NFC necessary to use Peerfinder?

3

In a Windows Store application, I am attempting to use the PeerFinder class to locate the Bluetooth enabled devices around me, but I get an generic exception every time I call Peerfinder.FindAllPeersAsync():

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

I think the issue is what Peerfinder.SupportedDiscoveryTypes == PeerDiscoveryTypes.None, but I'm not sure why this is. My computer does not have an NFC radio, but it does have Bluetooth. I would have thought this would make Peerfinder.SupportedDiscoveryTypes == PeerDiscoveryTypes.Browse. Is NFC required for this to work?

I have made almost identical code work in Windows Phone 8, but that does have NFC (though I only need to use it the first time to devices are connecting; they remember each other every time after that).

Update:

Here is some more info that people were asking for in the comments:

1) AllowBluetooth == true.
2) Bluetooth is enabled (and I connected something to the PC via Bluetooth just to prove to myself that the radio is working).
3) Both the Proximity and the Networking capabilities have been added.

windows-8
windows-store-apps
proximity
asked on Stack Overflow Dec 10, 2012 by Joel Shea • edited Dec 10, 2012 by Joel Shea

2 Answers

2

There is an extended example of how to use this here. It appears you can use WiFi on some devices, but if SupportedDiscoveryTypes == PeerDiscovertyTypes.None then none of the above is available. See here for more notes on how to use FindAllPeers.

You can use the SupportedDiscoveryTypes property to determine whether the current PC has a working proximity device or whether the Wi-Fi device supports Wifi-Direct browsing.

Example check from the link:

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;
}
answered on Stack Overflow Dec 10, 2012 by N_A • edited Dec 10, 2012 by N_A
1

It seems that Windows 8 devices rely on WiFi Direct to stablish the socket connection, while WP8 devices use Bluetooth. I know that using an NFC-enabled Windows 8 tablet, you can trigger the connection by doing a tap gesture (see the PixPresenter code sample implementing this technique). See also the official documentation samples. However, one would expect that you can connect a Windows Sotre app and a WP8 app using Bluetooth.

MSDN documentation suggest that by using PeerFinder.AlternateIdentities you can tell each app the ID of the app running on the other device.

Here's another article on the subject http://msdn.microsoft.com/en-us/library/windows/apps/jj207060.aspx

Hope this helps.

answered on Stack Overflow Aug 4, 2013 by arbbot

User contributions licensed under CC BY-SA 3.0