Esempio n. 1
0
        private async void GetOnboardeeNetworkListAsync()
        {
            UpdateStatusAsync("Requesting network list from the onboardee...", NotifyType.StatusMessage);
            OnboardingGetScanInfoResult getScanResult = await m_consumer.GetScanInfoAsync();

            if (getScanResult.Status == AllJoynStatus.Ok)
            {
                if (getScanResult.ScanList.Count > 0)
                {
                    await m_dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                    {
                        foreach (OnboardingScanListItem item in getScanResult.ScanList)
                        {
                            m_onboardeeNetworkList.Add(item);
                        }
                    });

                    ShowOnboardeeSsidList();
                    UpdateStatusAsync(string.Format("{0} network(s) returned. Scan age: {1} minutes.", getScanResult.ScanList.Count, getScanResult.Age), NotifyType.StatusMessage);
                }
                else
                {
                    // No networks returned by the onboardee. Provide the user option to configure onboardee with networks visible from onboarder.
                    UpdateStatusAsync("Please select a network or enter one manually.", NotifyType.StatusMessage);
                    ShowOnboarderSsidList();
                }
            }
            else
            {
                // Unable to get scan information from the onboardee. Provide the user option to configure onboardee with networks visible from onboarder.
                UpdateStatusAsync("Please select a network or enter one manually.", NotifyType.StatusMessage);
                ShowOnboarderSsidList();
            }
            OnboardingConfigurationVisibility = Visibility.Visible;
        }
        // Method to handle calls to the GetScanInfo method.
        IAsyncOperation <OnboardingGetScanInfoResult> IOnboardingService.GetScanInfoAsync(AllJoynMessageInfo info)
        {
            Task <OnboardingGetScanInfoResult> task = new Task <OnboardingGetScanInfoResult>(() =>
            {
                return(OnboardingGetScanInfoResult.CreateSuccessResult(1, AppData.SampleNetworkScanList));
            });

            task.Start();
            return(task.AsAsyncOperation());
        }
Esempio n. 3
0
        public IAsyncOperation <OnboardingGetScanInfoResult> GetScanInfoAsync(AllJoynMessageInfo info)
        {
            return(Task.Run(async() =>
            {
                var adapter = await WiFiAdapter.FromIdAsync(_wlanAdapterId);
                await adapter.ScanAsync();

                var availableNetworks = new List <OnboardingScanListItem>();
                foreach (var network in adapter.NetworkReport.AvailableNetworks)
                {
                    var listItem = new OnboardingScanListItem {
                        Value1 = network.Ssid
                    };

                    switch (network.SecuritySettings.NetworkAuthenticationType)
                    {
                    case NetworkAuthenticationType.Open80211:
                        {
                            listItem.Value2 = (short)AuthType.Open;
                            break;
                        }

                    case NetworkAuthenticationType.Wpa:
                        {
                            listItem.Value2 = (short)AuthType.WPA_AUTO;
                            break;
                        }

                    default:
                        {
                            listItem.Value2 = (short)AuthType.Any;
                            break;
                        }
                    }

                    if (availableNetworks.Find(x => x.Value1 == listItem.Value1 && x.Value2 == listItem.Value2) == null)
                    {
                        availableNetworks.Add(listItem);
                    }
                }

                return OnboardingGetScanInfoResult.CreateSuccessResult(0, availableNetworks);
            }).AsAsyncOperation());
        }