Я запускаю службу точки доступа Wi-Fi Direct, используя API-интерфейсы UWP. Все начинается хорошо. Я использую WiFiDirectConnectionListener
для мониторинга устройств, которые подключаются к точке доступа с помощью события ConnectionRequested
.
var connectionRequest = args.GetConnectionRequest();
var deviceInformation = connectionRequest.DeviceInformation;
// FromIdAsync needs to be called from the UI thread (in MS example).
var isConnected = RunOnUIThreadAsync(() =>
{
try
{
var device = WiFiDirectDevice.FromIdAsync(deviceInformation.Id).AsTask().Result;
if (device != null)
{
device.ConnectionStatusChanged -= OnDeviceConnectionStatusChanged;
device.ConnectionStatusChanged += OnDeviceConnectionStatusChanged;
return true;
}
return false;
}
catch (Exception e)
{
// This throws an Exception from HRESULT: 0x800705B4.
return false;
}
}).Result;
На некоторых устройствах, которые подключаются к точке доступа, при вызове FromIdAsync
с
генерируется исключение
Эта операция вернулась, поскольку истекло время ожидания. (Исключение из HRESULT: 0x800705B4).
В свою очередь, устройство, которое пытается подключиться к точке доступа, не будет подключаться.
Это всегда те же устройства, которые не могут подключиться, в то время как другие подключаются просто отлично. Я пробовал с и без потока пользовательского интерфейса, но результат остается прежним. Я использую это неправильно, или это ошибка в Wi-Fi Direct? Если да, есть ли другой способ запустить точку доступа Wi-Fi Direct без UWP API? Возможно, это работает лучше.