PeerWatcher Clase

Definición

Detecta dinámicamente aplicaciones del mismo nivel dentro del intervalo inalámbrico.

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
Herencia
Object Platform::Object IInspectable PeerWatcher
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
Características de aplicaciones
proximity

Comentarios

Puede usar el método FindAllPeersAsync para obtener una lista de todos los elementos del mismo nivel dentro del intervalo. Sin embargo, el método FindAllPeersAsync busca elementos del mismo nivel una vez y, a continuación, se completa. Como alternativa, puede usar la clase PeerWatcher para buscar elementos del mismo nivel y obtener actualizaciones a medida que se encuentran y actualizan incrementalmente la lista de aplicaciones del mismo nivel disponibles. PeerWatcher examina continuamente las nuevas aplicaciones del mismo nivel dentro del intervalo y elimina las aplicaciones del mismo nivel obsoletas. Puede actualizar la lista de aplicaciones del mismo nivel controlando el evento Added , que se produce cuando se encuentra una nueva aplicación del mismo nivel y el evento Removed que se produce cuando se quita una aplicación del mismo nivel obsoleta. PeerWatcher continúa explorando hasta que se llama al método Stop o a los métodos PeerFinder.FindAllPeersAsync o PeerFinder.ConnectAsync .

Importante

En el caso de las aplicaciones de Windows Phone 8.x, se producirá un error al llamar a PeerFinder.ConnectAsync desde un control de eventos EnumerationCompleted, Added o Updated. En su lugar, llámalo fuera de estos controladores de eventos, por ejemplo, cuando el usuario ha elegido explícitamente conectarse a un elemento del mismo nivel.

Para crear una instancia de la clase PeerWatcher, llame al método PeerFinder.Start y, a continuación, llame al método 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;
    }
}

Propiedades

Status

Obtiene el estado actual del objeto PeerWatcher .

Métodos

Start()

Comience la búsqueda dinámica de aplicaciones del mismo nivel dentro del intervalo inalámbrico.

Stop()

Detenga la búsqueda dinámica de aplicaciones del mismo nivel dentro del intervalo inalámbrico.

Eventos

Added

Se produce cuando se encuentra una aplicación del mismo nivel dentro del intervalo inalámbrico.

EnumerationCompleted

Se produce una vez completada una operación de examen y se han encontrado todas las aplicaciones del mismo nivel dentro del intervalo inalámbrico.

Removed

Se produce cuando una aplicación del mismo nivel ya no está dentro del intervalo inalámbrico.

Stopped

Se produce cuando se ha detenido el objeto PeerWatcher .

Updated

Se produce cuando el DisplayName o DiscoveryData de una aplicación del mismo nivel dentro del intervalo inalámbrico ha cambiado.

Se aplica a

Consulte también