PeerWatcher Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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. |