PeerWatcher Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermittelt dynamisch Peer-Apps innerhalb des drahtlosen Bereichs.
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
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
App-Funktionen |
proximity
|
Hinweise
Sie können die FindAllPeersAsync-Methode verwenden, um eine Liste aller Peers innerhalb des Bereichs abzurufen. Die FindAllPeersAsync-Methode sucht jedoch einmal nach Peers und schließt dann ab. Alternativ können Sie die PeerWatcher-Klasse verwenden, um nach Peers zu suchen und Updates abzurufen, sobald sie gefunden werden, und Ihre Liste der verfügbaren Peer-Apps inkrementell zu aktualisieren. PeerWatcher sucht kontinuierlich nach neuen Peer-Apps in Reichweite und entfernt veraltete Peer-Apps. Sie können Ihre Liste der Peer-Apps aktualisieren, indem Sie das Add-Ereignis behandeln, das auftritt, wenn eine neue Peer-App gefunden wird, und das Removed-Ereignis , das auftritt, wenn eine veraltete Peer-App entfernt wird. Der PeerWatcher scannt weiter, bis Sie die Stop-Methode oder die PeerFinder.FindAllPeersAsync - oder PeerFinder.ConnectAsync-Methode aufrufen.
Wichtig
Bei Windows Phone 8.x-Apps schlägt das Aufrufen von PeerFinder.ConnectAsync innerhalb eines EnumerationCompleted-, Added- oder Updated-Ereignishandlers fehl. Rufen Sie sie stattdessen außerhalb dieser Ereignishandler auf, z. B. wenn der Benutzer explizit eine Verbindung mit einem Peer hergestellt hat.
Um eine instance der PeerWatcher-Klasse zu erstellen, rufen Sie die PeerFinder.Start-Methode auf, und rufen Sie dann die CreateWatcher-Methode auf.
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;
}
}
Eigenschaften
Status |
Ruft den aktuellen Zustand des PeerWatcher-Objekts ab. |
Methoden
Start() |
Beginnen Sie mit der dynamischen Suche nach Peer-Apps innerhalb des drahtlosen Bereichs. |
Stop() |
Beenden Sie die dynamische Suche nach Peer-Apps innerhalb des drahtlosen Bereichs. |
Ereignisse
Added |
Tritt auf, wenn eine Peer-App innerhalb des drahtlosen Bereichs gefunden wird. |
EnumerationCompleted |
Tritt auf, nachdem ein Scanvorgang abgeschlossen ist und alle Peer-Apps innerhalb des drahtlosen Bereichs gefunden wurden. |
Removed |
Tritt auf, wenn sich eine Peer-App nicht mehr in drahtloser Reichweite befindet. |
Stopped |
Tritt auf, wenn das PeerWatcher-Objekt beendet wurde. |
Updated |
Tritt auf, wenn sich displayName oder DiscoveryData für eine Peer-App innerhalb des drahtlosen Bereichs geändert hat. |