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()); }
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()); }