Partager via


PeerWatcher Classe

Définition

Détecte dynamiquement les applications homologues dans la plage sans fil.

public ref class PeerWatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PeerWatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PeerWatcher
Public NotInheritable Class PeerWatcher
Héritage
Object Platform::Object IInspectable PeerWatcher
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
Fonctionnalités de l’application
proximity

Remarques

Vous pouvez utiliser la méthode FindAllPeersAsync pour obtenir la liste de tous les homologues dans la plage. Toutefois, la méthode FindAllPeersAsync recherche les homologues une fois, puis se termine. Vous pouvez également utiliser la classe PeerWatcher pour rechercher des pairs et obtenir des mises à jour à mesure qu’ils sont trouvés et mettre à jour de manière incrémentielle votre liste d’applications homologues disponibles. PeerWatcher recherche en continu les nouvelles applications homologues dans la plage et supprime les applications homologues obsolètes. Vous pouvez mettre à jour votre liste d’applications homologues en gérant l’événement Added , qui se produit lorsqu’une nouvelle application homologue est trouvée, et l’événement Removed qui se produit lorsqu’une application homologue obsolète est supprimée. PeerWatcher continue à analyser jusqu’à ce que vous appeliez la méthode Stop, ou les méthodes PeerFinder.FindAllPeersAsync ou PeerFinder.ConnectAsync .

Important

Pour Windows Phone applications 8.x, l’appel de PeerFinder.ConnectAsync à partir d’un gestionnaire d’événements EnumerationCompleted, Added ou Updated échoue. Au lieu de cela, appelez-le en dehors de ces gestionnaires d’événements, par exemple, lorsque l’utilisateur a explicitement choisi de se connecter à un homologue.

Pour créer un instance de la classe PeerWatcher, appelez la méthode PeerFinder.Start, puis appelez la méthode CreateWatcher.

private PeerWatcher _peerWatcher;
private bool _peerWatcherIsRunning = false;
private bool _peerFinderStarted = false;

// The list of peers discovered by the PeerWatcher.
ObservableCollection<PeerInformation> _discoveredPeers = new ObservableCollection<PeerInformation>();
void PeerFinder_StartPeerWatcher(object sender, RoutedEventArgs e)
{
    if (!_peerFinderStarted)
    {
        // PeerFinder must be started first.
        return;
    }

    if (_peerWatcherIsRunning)
    {
        // PeerWatcher is already running.
        return;
    }

    try
    {
        if (_peerWatcher == null)
        {
            _peerWatcher = PeerFinder.CreateWatcher();

            // Add PeerWatcher event handlers. Only add handlers once.
            _peerWatcher.Added += PeerWatcher_Added;
            _peerWatcher.Removed += PeerWatcher_Removed;
            _peerWatcher.Updated += PeerWatcher_Updated;
            _peerWatcher.EnumerationCompleted += PeerWatcher_EnumerationCompleted;
            _peerWatcher.Stopped += PeerWatcher_Stopped;
        }

        // Empty the list of discovered peers.
        _discoveredPeers.Clear();

        // Start the PeerWatcher.
        _peerWatcher.Start();

        _peerWatcherIsRunning = true;
    }
    catch (Exception ex)
    {
        // Exceptions can occur if PeerWatcher.Start is called multiple times or
        // PeerWatcher.Start is called the PeerWatcher is stopping.
    }
}

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    if (_peerWatcher != null)
    {
        // Remove event handlers.
        _peerWatcher.Added -= PeerWatcher_Added;
        _peerWatcher.Removed -= PeerWatcher_Removed;
        _peerWatcher.Updated -= PeerWatcher_Updated;
        _peerWatcher.EnumerationCompleted -= PeerWatcher_EnumerationCompleted;
        _peerWatcher.Stopped -= PeerWatcher_Stopped;

        _peerWatcher = null;
    }
}

Propriétés

Status

Obtient l’état actuel de l’objet PeerWatcher .

Méthodes

Start()

Commencez à rechercher dynamiquement des applications homologues dans la plage sans fil.

Stop()

Arrêtez la recherche dynamique d’applications homologues dans la plage sans fil.

Événements

Added

Se produit lorsqu’une application homologue se trouve dans la plage sans fil.

EnumerationCompleted

Se produit une fois qu’une opération d’analyse est terminée et que toutes les applications homologues dans la plage sans fil ont été trouvées.

Removed

Se produit lorsqu’une application homologue n’est plus dans la plage sans fil.

Stopped

Se produit lorsque l’objet PeerWatcher a été arrêté.

Updated

Se produit lorsque le DisplayName ou DiscoveryData d’une application homologue dans la plage sans fil a changé.

S’applique à

Voir aussi