首页 文章

以编程方式获取连接到Windows IoT核心机器RPI上托管的WiFi Hotspot的设备列表

提问于
浏览
1

我想与运行Windows IoT Core的RPI上托管的WiFi Hotspot以编程方式接口进行交互 . 我想出了主机WiFi热点部分,windows 10 iot raspberry pi 3 wifi hotspot但现在我想得到连接到这个网络的设备列表 . 这可能吗?

1 回答

  • 1

    您可以使用WiFiDirectConnectionListener来实现此目标 . 当其他设备通过Wifi SoftAP连接到主机设备时,WiFiDirectConnectionListener将捕获连接请求 .

    private Dictionary<string,DeviceInformation> connectionDeviceList = new Dictionary<string, DeviceInformation>();
    

    WiFiDirectConnectionListener wifiAPListener = new WiFiDirectConnectionListener();
        wifiAPListener.ConnectionRequested += WifiAPListener_ConnectionRequested;
    

    private void WifiAPListener_ConnectionRequested(WiFiDirectConnectionListener sender, WiFiDirectConnectionRequestedEventArgs args)
        {
            try
            {
                var request = args.GetConnectionRequest();
                var devInfo = request.DeviceInformation;
    
                var wfdDevice = await WiFiDirectDevice.FromIdAsync(devInfo.Id);
                wfdDevice.ConnectionStatusChanged += WfdDevice_ConnectionStatusChanged;
    
                if (!connectionDeviceList.ContainsKey(devInfo.Id))
                {
                    connectionDeviceList.Add(devInfo.Id, devInfo);
                }
            }
            catch(Exception ex)
            {
                Debug.Write(ex.StackTrace);
            }           
        }
    
        private void WfdDevice_ConnectionStatusChanged(WiFiDirectDevice sender, object args)
        {
            try
            {
                if (sender.ConnectionStatus == WiFiDirectConnectionStatus.Disconnected)
                {
                    if (connectionDeviceList.ContainsKey(sender.DeviceId))
                    {
                        connectionDeviceList.Remove(sender.DeviceId);
                    }
                }
            }
            catch(Exception ex)
            {
                Debug.Write(ex.StackTrace);
            }
        }
    

    DeviceInformation的名称是您连接wifi热点的设备的MAC,您可以通过设置断点获取更多信息 . 当您断开连接时,WiFiDirectDevice将调用ConnectionStatusChanged事件 .

相关问题