예제 #1
0
        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();
        }
예제 #2
0
 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();
 }