我正在使用 UWP API 启动 Wi-Fi Direct 接入点服务。它开始正常。我正在使用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(。
反过来,尝试访问接入点的设备将无法连接。
总是相同的设备无法连接,而其他设备连接正常。我已经尝试过使用和不使用 UI 线程,但结果保持不变。我用错了,还是这是Wi-Fi Direct中的错误?如果是这样,是否有另一种方法可以在没有 UWP API 的情况下启动 Wi-Fi 直接接入点?也许这样效果更好。
防止超时的解决方法是在客户端激活 DHCP。尝试将具有固定IP地址的设备连接到热点时,我遇到了此错误。