public void Start() { // Clean up old state Reset(); // Create WiFiDirectAdvertisementPublisher _publisher = new WiFiDirectAdvertisementPublisher(); // Add event handler for advertisement StatusChanged _publisher.StatusChanged += OnStatusChanged; // Set Advertisement required settings _advertisement = _publisher.Advertisement; // Must set the autonomous group owner (GO) enabled flag // Legacy Wi-Fi Direct advertisement uses a Wi-Fi Direct GO to act as an access point to legacy settings _advertisement.IsAutonomousGroupOwnerEnabled = true; _legacySettings = _advertisement.LegacySettings; // Must enable legacy settings so that non-Wi-Fi Direct peers can connect in legacy mode _legacySettings.IsEnabled = true; // Either specify an SSID, or read the randomly generated one if (_ssidProvided) { _legacySettings.Ssid = _ssid; } else { _ssid = _legacySettings.Ssid; } // Either specify a passphrase, or read the randomly generated one if (_passPhraseProvided) { _legacySettings.Passphrase.Password = _passPhrase; } else { _passPhrase = _legacySettings.Passphrase.Password; } _publisher.Start(); }
private void Reset() { if (_connectionListener != null) { _connectionListener.ConnectionRequested -= OnConnectionRequested; } if (_publisher != null) { _publisher.StatusChanged -= OnStatusChanged; if (_publisher.Status == WiFiDirectAdvertisementPublisherStatus.Created || _publisher.Status == WiFiDirectAdvertisementPublisherStatus.Started) { _publisher.Stop(); } } _connectionListener = null; _publisher = null; _legacySettings = null; _advertisement = null; _connectedDevices.Clear(); }