通过 WiFi Direct 连接到 Sony QX1 实际结果预期结果

问题描述

我正在尝试从 Windows 连接到我的 Sony QX1。

QX1 实际上有三种连接模式,尽管只有第一种被真正记录下来:

  1. 将相机设置为[单]模式,相机创建热点,手机作为客户端连接
  2. 将相机设置为 [Single] 模式,从您的手机启动 WiFi Direct 连接。相机会发出哔哔声,直到您长按其上的 WiFi 按钮。
  3. 将相机设置为 [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 (将#修改为@)