Соединение Bluetooth без UWP без ввода пин-кода пользователя - PullRequest
0 голосов
/ 25 сентября 2019

В настоящее время я создаю безголовое приложение UWP, работающее на Windows 10 IoT Core.Мне нужно иметь возможность подключать мобильные устройства к киоску через Bluetooth (RFCOMM) для сбора данных.Мне нужно иметь возможность инициировать сопряжение с мобильных устройств.

Я экспериментировал со всеми образцами приложений UWP Bluetooth , но в основном экспериментировал с Перечисление устройств и сопряжение C # образец - в частности Сценарий 9 - Сопряжение пользовательских устройств .Я могу успешно выполнить сопряжение с приложением UWP во главе, используя контакты, но я не смог успешно выполнить сопряжение с моим приложением безголового пользователя - я получаю либо «сбойный» результат, либо «время ожидания аутентификации», когда пытаюсь инициировать сопряжение.

Как подключить одно безголовое приложение UWP без пользовательского интерфейса для получения пин-кода?Я мог бы жить с приложением UWP, имеющим жестко закодированный штырь вместо случайного пина для каждой попытки соединения, но я не уверен, возможно ли это или нет?

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете попробовать следующий код.Когда поступают запросы на сопряжение, вызывается handlerUpdater.

            handlerUpdated = new TypedEventHandler<DeviceWatcher, DeviceInformationUpdate>(async (watcher, deviceInfoUpdate) =>
            {
                // Since we have the collection databound to a UI element, we need to update the collection on the UI thread.
                await MainPage.Current.UIThreadDispatcher.RunAsync(CoreDispatcherPriority.Low, async () =>
                {
                    // Find the corresponding updated DeviceInformation in the collection and pass the update object
                    // to the Update method of the existing DeviceInformation. This automatically updates the object
                    // for us.
                    foreach (BluetoothDeviceInformationDisplay deviceInfoDisp in bluetoothDeviceObservableCollection)
                    {
                        if (deviceInfoDisp.Id == deviceInfoUpdate.Id)
                        {
                            if (deviceInfoDisp.DeviceInformation.Pairing.CanPair)
                            {
                                await deviceInfoDisp.DeviceInformation.Pairing.Custom.PairAsync(DevicePairingKinds.ConfirmOnly);
                            }

                            deviceInfoDisp.Update(deviceInfoUpdate);
                            break;
                        }
                    }
                });
            });
            deviceWatcher.Updated += handlerUpdated;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...