private async void AttemptOnboardingAsync(string ssid, string password, short authType)
        {
            if (string.IsNullOrWhiteSpace(ssid))
            {
                UpdateStatusAsync("No SSID selected. Please select a network or manually enter SSID.", NotifyType.ErrorMessage);
            }
            else
            {
                UpdateStatusAsync("Attempting to configure onboardee...", NotifyType.StatusMessage);
                // WiFi password must be converted to hex representation of the UTF-8 string.
                OnboardingConfigureWiFiResult configureWifiResult = await m_consumer.ConfigureWiFiAsync(ssid, ConvertUtf8ToHex(password), authType);

                if (configureWifiResult.Status == AllJoynStatus.Ok)
                {
                    UpdateStatusAsync("Onboardee sucessfully configured.", NotifyType.StatusMessage);
                    if (configureWifiResult.Status2 == (short)ConfigureWiFiResultStatus.Concurrent)
                    {
                        // Concurrent step used to validate the personal AP connection. In this case, the Onboarder application must
                        // wait for the ConnectionResult signal to arrive over the AllJoyn session established over the SoftAP link.
                        m_consumer.Signals.ConnectionResultReceived += Signals_ConnectionResultReceived;
                    }
                    AttemptConnectionAsync();
                }
                else
                {
                    UpdateStatusAsync(string.Format("Attempt to configure WiFi failed with AllJoyn error: 0x{0:X}.", configureWifiResult.Status), NotifyType.ErrorMessage);
                }
            }
            ClearPasswords();
        }
예제 #2
0
        private async void AttemptOnboardingAsync(string ssid, string password, short authType)
        {
            if (string.IsNullOrWhiteSpace(ssid))
            {
                UpdateStatusAsync("No SSID selected. Please select a network or manually enter SSID.", NotifyType.ErrorMessage);
            }
            else
            {
                UpdateStatusAsync("Attempting to configure onboardee...", NotifyType.StatusMessage);

                OnboardingConfigureWiFiResult configureWifiResult = await m_consumer.ConfigureWiFiAsync(ssid, ConvertUtf8ToHex(password), authType);

                if (configureWifiResult.Status == AllJoynStatus.Ok)
                {
                    UpdateStatusAsync("Onboardee sucessfully configured.", NotifyType.StatusMessage);
                    if (configureWifiResult.Status2 == (short)ConfigureWiFiResultStatus.Concurrent)
                    {
                        // The Onboardee has indicated that it will attempt to connect to the desired AP concurrently, while the SoftAP is enabled. In this case,
                        // the Onboarder application must wait for the ConnectionResult signal to arrive over the AllJoyn session established over the SoftAP link.
                        // If the Onboardee does not connect to the desired AP concurrently, then there is no guaranteed way for the Onboarder application to find
                        // out if the connection attempt was successful or not. In the NotConcurrent connection attempt, if the Onboardee fails to connect to
                        // the desired AP, the Onboarder application will have to again start over with scanning and connecting to the Onboardee SoftAP.
                        // For more information please visit http://go.microsoft.com/fwlink/?LinkId=817239
                        m_consumer.Signals.ConnectionResultReceived += Signals_ConnectionResultReceived;
                    }
                    AttemptConnectionAsync();
                }
                else
                {
                    UpdateStatusAsync(string.Format("Attempt to configure WiFi failed with AllJoyn error: 0x{0:X}.", configureWifiResult.Status), NotifyType.ErrorMessage);
                }
            }
            ClearPasswords();
        }
예제 #3
0
        // Method to handle calls to the ConfigureWifi method.
        IAsyncOperation <OnboardingConfigureWiFiResult> IOnboardingService.ConfigureWiFiAsync(AllJoynMessageInfo info, string interfaceMemberSsid, string interfaceMemberPassphrase, short interfaceMemberAuthType)
        {
            IAsyncAction asyncAction = MainPage.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                MainPage.Current.NotifyUser("Configure WiFi request received", NotifyType.StatusMessage);
            });

            Task <OnboardingConfigureWiFiResult> task = new Task <OnboardingConfigureWiFiResult>(() =>
            {
                AppData.OnboardingConfigureSsid       = interfaceMemberSsid;
                AppData.OnboardingConfigurePassphrase = interfaceMemberPassphrase;
                AppData.OnboardingConfigureAuthType   = interfaceMemberAuthType;
                AppData.OnboardingConfigurationState  = (short)ConfigurationState.NotValidated;
                return(OnboardingConfigureWiFiResult.CreateSuccessResult((short)ConfigureWiFiResultStatus.Concurrent));
            });

            task.Start();
            return(task.AsAsyncOperation());
        }