PeerFinder.Start() | start() method
Starts the process of finding peer apps and makes an app discoverable to remote peers.
Syntax
Parameters
This method has no parameters.
Remarks
You can call the Start method to begin the process of finding a peer app and to make your app discoverable to remote peers that call the FindAllPeersAsync method. A peer is a computer that has an app running in the foreground with a matching AppId. A peer can also have a matching Browse Id that's specified as an alternate identity. For more information, see AlternateIdentities.
You can connect to only one peer at a time.
When an app is activated by tapping a nearby device, the activation parameters indicate whether the PeerFinder should be started or if the app was launched with activation arguments. For more information, see the "Activating apps using Proximity" section of Supporting Proximity and Tapping.
Windows Phone 8
Wi-Fi Direct is not supported on Windows Phone 8. For more information, see Proximity.
Examples
Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs) DisplayNameTextBox.Text = Windows.Networking.Proximity.PeerFinder.DisplayName AddHandler Windows.Networking.Proximity.PeerFinder.ConnectionRequested, AddressOf ConnectionRequested ' If activated from launch or from the background, create a peer connection. Dim args = TryCast(e.Parameter, Windows.ApplicationModel.Activation.LaunchActivatedEventArgs) If args IsNot Nothing AndAlso args.Kind = Windows.ApplicationModel.Activation.ActivationKind.Launch Then If args.Arguments = "Windows.Networking.Proximity.PeerFinder:StreamSocket" Then AdvertiseForPeersButton_Click() End If End If End Sub Protected Overrides Sub OnNavigatingFrom(e As Navigation.NavigatingCancelEventArgs) If _started Then ' Detach the callback handler (there can only be one PeerConnectProgress handler). RemoveHandler Windows.Networking.Proximity.PeerFinder.TriggeredConnectionStateChanged, AddressOf TriggeredConnectionStateChanged ' Detach the incoming connection request event handler. RemoveHandler Windows.Networking.Proximity.PeerFinder.ConnectionRequested, AddressOf ConnectionRequested Windows.Networking.Proximity.PeerFinder.Stop() CloseSocket() _started = False End If End Sub ' Write a message to MessageBlock on the UI thread. Private Async Sub WriteMessageText(message As String, Optional overwrite As Boolean = False) Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, Sub() If overwrite Then MessageBlock.Text = message Else MessageBlock.Text &= message End If End Sub) End Sub Private _started As Boolean = False ' Click event handler for "Advertise" button. Private Sub AdvertiseForPeersButton_Click() If _started Then WriteMessageText("You are already advertising for a connection." & vbCrLf) Return End If Windows.Networking.Proximity.PeerFinder.DisplayName = DisplayNameTextBox.Text If ((Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Triggered) = Windows.Networking.Proximity.PeerDiscoveryTypes.Triggered) Then AddHandler Windows.Networking.Proximity.PeerFinder.TriggeredConnectionStateChanged, AddressOf TriggeredConnectionStateChanged WriteMessageText("You can tap to connect a peer device that is " & "also advertising for a connection." & vbCrLf) Else WriteMessageText("Tap to connect is not supported." & vbCrLf) End If If (Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Browse) <> Windows.Networking.Proximity.PeerDiscoveryTypes.Browse Then WriteMessageText("Peer discovery using Wifi-Direct is not supported." & vbCrLf) End If Windows.Networking.Proximity.PeerFinder.Start() _started = True End Sub Private Sub TriggeredConnectionStateChanged( sender As Object, e As Windows.Networking.Proximity.TriggeredConnectionStateChangedEventArgs) If e.State = Windows.Networking.Proximity.TriggeredConnectState.PeerFound Then WriteMessageText("Peer found. You may now pull your devices out of proximity." & vbCrLf) End If If e.State = Windows.Networking.Proximity.TriggeredConnectState.Completed Then WriteMessageText("Connected. You may now send a message." & vbCrLf) SendMessage(e.Socket) End If End Sub ' Click event handler for "Browse" button. Private Async Sub FindPeersButton_Click() If (Windows.Networking.Proximity.PeerFinder.SupportedDiscoveryTypes And Windows.Networking.Proximity.PeerDiscoveryTypes.Browse) <> Windows.Networking.Proximity.PeerDiscoveryTypes.Browse Then WriteMessageText("Peer discovery using Wifi-Direct is not supported." & vbCrLf) Return End If Try Dim peerInfoCollection = Await Windows.Networking.Proximity.PeerFinder.FindAllPeersAsync() If peerInfoCollection.Count > 0 Then ' Connect to first peer found - example only. ' In your app, provide the user with a list of available peers. ConnectToPeer(peerInfoCollection(0)) End If Catch err As Exception WriteMessageText("Error finding peers: " & err.Message & vbCrLf) End Try End Sub Private Async Sub ConnectToPeer(peerInfo As Windows.Networking.Proximity.PeerInformation) WriteMessageText("Peer found. Connecting to " & peerInfo.DisplayName & vbCrLf) Try Dim socket = Await Windows.Networking.Proximity.PeerFinder.ConnectAsync(peerInfo) WriteMessageText("Connection successful. You may now send messages." & vbCrLf) SendMessage(socket) Catch err As Exception WriteMessageText("Connection failed: " & err.Message & vbCrLf) End Try requestingPeer = Nothing End Sub ' Click event handler for "Stop" button. Private Sub StopFindingPeersButton_Click() _started = False Windows.Networking.Proximity.PeerFinder.Stop() If proximitySocket IsNot Nothing Then CloseSocket() End Sub ' Handle external connection requests. Private requestingPeer As Windows.Networking.Proximity.PeerInformation Private Sub ConnectionRequested(sender As Object, e As Windows.Networking.Proximity.ConnectionRequestedEventArgs) WriteMessageText("Connection requested by " & requestingPeer.DisplayName & ". " & "Click 'Accept Connection' to connect.") requestingPeer = e.PeerInformation End Sub Private Sub AcceptConnectionButton_Click() If requestingPeer Is Nothing Then WriteMessageText("No peer connection has been requested.") Return End If ConnectToPeer(requestingPeer) End Sub
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Minimum supported phone | Windows Phone 8 |
|
Namespace |
|
|
Metadata |
|
|
Capabilities |
|
See also
- AlternateIdentities
- PeerFinder
- Start(String)
- Proximity and Tapping (JavaScript)
- Proximity and Tapping (C#/VB/C++)
- Samples
- Proximity sample
Build date: 2/25/2013