public async Task <AsyncProvisioningInfoResult> GetProvisioningInfoAsync(
            DiscoveredService discovered,
            WiFiDirectServiceConfigurationMethod configMethod
            )
        {
            WiFiDirectServiceProvisioningInfo provisioningInfo    = null;
            ProvisioningInfoWrapper           provisioningWrapper = null;
            Exception error   = null;
            bool      success = false;

            try
            {
                ThrowIfDisposed();

                WiFiDirectTestLogger.Log(
                    "GetProvisioningInfoAsync... (config method={0}) (Discovery={1})",
                    configMethod.ToString(),
                    discovered.Handle
                    );

                provisioningInfo = await discovered.GetProvisioningInfoAsync(configMethod);

                provisioningWrapper = new ProvisioningInfoWrapper(provisioningInfo);

                success = true;
            }
            catch (Exception ex)
            {
                WiFiDirectTestLogger.Log("Exception in GetProvisioningInfoAsync (this may be expected)");
                error = ex;
            }

            return(new AsyncProvisioningInfoResult(provisioningWrapper, success, error));
        }
예제 #2
0
            // An application has two ways to connect over Wi-Fi Direct services
            // 1) First call GetProvisioningInfoAsync to begin connecting,
            //        a) if a PIN is required (group formation is required and selected config method is PinEntry or PinDisplay) then call ConnectAsync with the PIN
            //        b) else if no PIN is required then call ConnectAsync with no PIN
            // 2) Call ConnectAsync to connect without a PIN and prefer the Wi-Fi Direct Default config method, if possible

            private async void GetProvisioningInfo_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
            {
                if (DiscoveredServices.Items.Count > 0)
                {
                    int index = DiscoveredServices.SelectedIndex;
                    if (index >= 0)
                    {
                        DiscoveredDeviceWrapper service = (DiscoveredDeviceWrapper)DiscoveredServices.Items[index];

                        WiFiDirectServiceConfigurationMethod configMethod = WiFiDirectServiceConfigurationMethod.Default;
                        if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "WFDS Default")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.Default;
                        }
                        else if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "PIN Keypad")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.PinEntry;
                        }
                        else if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "PIN Display")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.PinDisplay;
                        }

                        await service.OpenSessionAsync();

                        await service.SetServiceOptionsAsync(PreferGO.IsChecked ?? false, SessionInfo.Text);

                        provisioningInfo = await service.GetProvisioningInfoAsync(configMethod);
                    }
                }
            }
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                lock (thisLock)
                {
                    rootPage = MainPage.Current;

                    // Cleanup past discoveries
                    DiscoveredServices.Items.Clear();
                    provisioningInfo = null;

                    UpdateDiscoveryList(WiFiDirectServiceManager.Instance.DiscoveredDevices);
                }
                WiFiDirectServiceManager.Instance.Scenario3 = this;
            }
예제 #4
0
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                lock (thisLock)
                {
                    rootPage = MainPage.Current;

                    // Cleanup past discoveries
                    DiscoveredServices.Items.Clear();
                    provisioningInfo = null;

                    UpdateDiscoveryList(WiFiDirectServiceManager.Instance.DiscoveredDevices);
                }
                WiFiDirectServiceManager.Instance.Scenario3 = this;
            }
            // An application has two ways to connect over Wi-Fi Direct services
            // 1) First call GetProvisioningInfoAsync to begin connecting,
            //        a) if a PIN is required (group formation is required and selected config method is PinEntry or PinDisplay) then call ConnectAsync with the PIN
            //        b) else if no PIN is required then call ConnectAsync with no PIN
            // 2) Call ConnectAsync to connect without a PIN and prefer the Wi-Fi Direct Default config method, if possible

            private async void GetProvisioningInfo_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
            {
                if (DiscoveredServices.Items.Count > 0)
                {
                    int index = DiscoveredServices.SelectedIndex;
                    if (index >= 0)
                    {
                        DiscoveredDeviceWrapper service = (DiscoveredDeviceWrapper)DiscoveredServices.Items[index];

                        WiFiDirectServiceConfigurationMethod configMethod = WiFiDirectServiceConfigurationMethod.Default;
                        if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "WFDS Default")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.Default;
                        }
                        else if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "PIN Keypad")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.PinEntry;
                        }
                        else if (((ComboBoxItem)SelectedConfigMethod.SelectedItem).Content.ToString() == "PIN Display")
                        {
                            configMethod = WiFiDirectServiceConfigurationMethod.PinDisplay;
                        }

                        await service.OpenSessionAsync();
                        await service.SetServiceOptionsAsync(PreferGO.IsChecked ?? false, SessionInfo.Text);
                        provisioningInfo = await service.GetProvisioningInfoAsync(configMethod);
                    }
                }
            }