Я хотел бы взаимодействовать с программным интерфейсом с точкой доступа Wi-Fi, размещенной на моем RPI под управлением Windows IoT Core. Я выяснил, что размещает часть точки доступа Wi-Fi, windows 10 iot raspberry pi 3 wifi точка доступа, но теперь я хотел бы получить список устройств, подключенных к этой сети. Это возможно?
Программно получить список устройств, подключенных к точке доступа Wi-Fi, размещенной на компьютере Windows IoT Core, RPI
Ответы (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 — это MAC-адрес устройства, к которому вы подключаете точку доступа Wi-Fi, вы можете получить дополнительную информацию, установив точку останова. Когда вы разрываете соединение, WiFiDirectDevice вызывает событие ConnectionStatusChanged.
person
Michael Xu - MSFT
schedule
18.09.2017
Так что только во время циклического пинга это решение?
- person Rohan Sawant; 18.09.2017
@Rohan Sawant, я нашел решение, как указано выше, а не с циклическим пингом.
- person Michael Xu - MSFT; 28.09.2017