如何解决通过 WiFi Direct 连接到 Sony QX1 实际结果预期结果
我正在尝试从 Windows 连接到我的 Sony QX1。
QX1 实际上有三种连接模式,尽管只有第一种被真正记录下来:
- 将相机设置为[单]模式,相机创建热点,手机作为客户端连接
- 将相机设置为 [Single] 模式,从您的手机启动 WiFi Direct 连接。相机会发出哔哔声,直到您长按其上的 WiFi 按钮。
- 将相机设置为 [Multi] 模式,按下路由器上的 WPS 按钮 (https://stackoverflow.com/a/46820594/1872399)
在我的 Android 手机上,我可以通过 WiFi Direct 连接到 QX1:
我进入 WiFi 设置 -> WiFi Direct -> 选择我的 QX1。 然后QX1开始发出哔哔声,我长按上面的WiFi按钮,连接成功。
现在我想在 Windows 上做同样的事情。
using System.Linq;
using Windows.Devices.Enumeration;
using Windows.Devices.WiFiDirect;
var selector = WiFiDirectDevice.GetDeviceSelector(WiFiDirectDeviceSelectorType.AssociationEndpoint);
var devInfoCollection = await DeviceInformation.FindAllAsync(selector);
var qx1 = devInfoCollection.Where(x => x.Name == "ILCE-QX1").ToArray();
DeviceInformation devInfo;
if (qx1.Length != 1)
{
Console.WriteLine($"Expected to find exactly one device,found {qx1.Length}");
return;
}
devInfo = qx1.Single();
var pairing = devInfo.Pairing.Custom;
pairing.PairingRequested += (_,args) =>
{
switch (args.PairingKind)
{
case DevicePairingKinds.ConfirmOnly:
args.Accept();
break;
default:
throw new NotImplementedException();
}
};
var result = await pairing.PairAsync(DevicePairingKinds.ConfirmOnly);
我可以找到我的设备。当我对其调用 PairAsync
时,QX1 开始发出哔哔声,PairingRequested
事件被 ConfirmOnly
触发。
实际结果
但配对随即(不到一秒后,因此没有时间按下按钮)失败,result.Status
设置为 Failed
。
我还尝试在 Accept
之前设置断点,然后在接受之前按下 QX1 上的按钮,但这没有帮助。
预期结果
我希望 PairAsync
方法等到我按下 QX1 上的 WiFi 按钮或超时。不会立即失败。
我在一个 UWP 应用程序中尝试了这个,我只是将这段代码放入一个按钮点击处理程序,以及一个 TFM 设置为 net5.0-windows10.0.19041.0
的 .NET 5 控制台应用程序。
在 UWP 应用中,我在配对尝试开始前收到“同意”弹出窗口,这是唯一的区别。
有点可疑的是 deviceInfo.Pairing.CanPair
是假的,但如果我尝试直接与 WiFiDirectDevice.FromIdAsync(devInfo.Id)
连接,我会得到一个 UnauthorizedAccessException
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。