PeerWatcher Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descobre dinamicamente aplicativos pares dentro do intervalo sem fio.
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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Funcionalidades do aplicativo |
proximity
|
Comentários
Você pode usar o método FindAllPeersAsync para obter uma lista de todos os pares dentro do intervalo. No entanto, o método FindAllPeersAsync verifica pares uma vez e, em seguida, é concluído. Como alternativa, você pode usar a classe PeerWatcher para procurar pares e obter atualizações conforme elas são encontradas e atualizar incrementalmente sua lista de aplicativos pares disponíveis. O PeerWatcher verifica continuamente novos aplicativos pares dentro do intervalo e remove aplicativos pares obsoletos. Você pode atualizar sua lista de aplicativos pares manipulando o evento Adicionado , que ocorre quando um novo aplicativo par é encontrado e o evento Removido , que ocorre quando um aplicativo par obsoleto é removido. O PeerWatcher continua a verificar até que você chame o método Stop ou os métodos PeerFinder.FindAllPeersAsync ou PeerFinder.ConnectAsync .
Importante
Para aplicativos Windows Phone 8.x, a chamada de PeerFinder.ConnectAsync de dentro de um manipulador de eventos EnumerationCompleted, Adicionado ou Atualizado falhará. Em vez disso, chame-o fora desses manipuladores de eventos, por exemplo, quando o usuário tiver explicitamente escolhido se conectar a um par.
Para criar uma instância da classe PeerWatcher, chame o método PeerFinder.Start e chame o 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;
}
}
Propriedades
Status |
Obtém o estado atual do objeto PeerWatcher . |
Métodos
Start() |
Comece a pesquisar dinamicamente aplicativos pares dentro do intervalo sem fio. |
Stop() |
Pare de pesquisar dinamicamente aplicativos pares dentro do intervalo sem fio. |
Eventos
Added |
Ocorre quando um aplicativo par é encontrado dentro do intervalo sem fio. |
EnumerationCompleted |
Ocorre depois que uma operação de verificação é concluída e todos os aplicativos pares dentro do intervalo sem fio são encontrados. |
Removed |
Ocorre quando um aplicativo par não está mais dentro do intervalo sem fio. |
Stopped |
Ocorre quando o objeto PeerWatcher foi interrompido. |
Updated |
Ocorre quando o DisplayName ou DiscoveryData para um aplicativo par dentro do intervalo sem fio foi alterado. |