다음을 통해 공유


Windows.Devices.WiFiDirect 네임스페이스

PC, 태블릿 및 휴대폰에 대한 연결된 Wi-Fi Direct 디바이스 및 연결된 엔드포인트에 대한 연결을 지원하는 클래스를 포함합니다.

클래스

WiFiDirectAdvertisement

Wi-Fi 직접 광고를 나타내며 앱이 광고의 수신 대기 상태 및 사용자 지정 정보 요소를 제어할 수 있도록 합니다.

WiFiDirectAdvertisementPublisher

Wi-Fi Direct 광고를 게시할 개체입니다.

WiFiDirectAdvertisementPublisherStatusChangedEventArgs

WiFiDirectAdvertisementPublisher에서 StatusChanged 이벤트에 대한 데이터를 제공합니다.

WiFiDirectConnectionListener

들어오는 Wi-Fi 직접 연결 요청을 수신 대기하는 데 사용되는 클래스입니다.

WiFiDirectConnectionParameters

앱에서 Wi-Fi 직접 연결/페어링 작업에 대한 연결 매개 변수를 지정하는 데 사용됩니다.

이 클래스를 사용하는 샘플 애플리케이션에는 Wi-Fi Direct 샘플이 포함됩니다.

WiFiDirectConnectionRequest

WiFiDirectConnectionListener에서 받은 Wi-Fi 직접 연결 요청입니다.

WiFiDirectConnectionRequestedEventArgs

WiFiDirectConnectionListenerConnectionRequested 이벤트에 대한 데이터를 제공합니다.

WiFiDirectDevice

연결된 Wi-Fi Direct 디바이스에 대한 연결을 관리합니다.

WiFiDirectInformationElement

Wi-Fi Direct 패킷의 정보 요소를 나타냅니다.

WiFiDirectLegacySettings

"레거시" 모드를 제어하는 설정(보급되는 액세스 지점에 대한 비 Wi-Fi Direct 연결).

열거형

WiFiDirectAdvertisementListenStateDiscoverability

Wi-Fi Direct 디바이스가 수신 대기하고 검색 가능한지 여부를 지정합니다.

WiFiDirectAdvertisementPublisherStatus

WiFiDirectAdvertisementPublisher의 가능한 상태를 나타냅니다.

WiFiDirectConfigurationMethod

Wi-Fi 직접 구성 메서드를 지정합니다. 구성은 사용자가 Wi-Fi Direct 장비의 한 조각을 다른 Wi-Fi Direct 장비에 연결하도록 지시하는 방법입니다.

WiFiDirectConnectionStatus

WiFiDirectDevice 개체의 연결 상태 설명합니다.

WiFiDirectDeviceSelectorType

Wi-Fi Direct의 디바이스 선택기 유형을 지정합니다.

WiFiDirectError

몇 가지 일반적인 Wi-Fi 직접 오류 사례를 지정합니다.

WiFiDirectPairingProcedure

직접 페어링 프로시저를 지정합니다.

예제

Windows.Devices.WiFiDirect.WiFiDirectDevice wfdDevice;

private async System.Threading.Tasks.Task<String> Connect(string deviceId)
{
    string result = ""; 

    try
    {
        // No device ID specified.
        if (String.IsNullOrEmpty(deviceId)) { return "Please specify a Wi-Fi Direct device ID."; }

        // Connect to the selected Wi-Fi Direct device.
        wfdDevice = await Windows.Devices.WiFiDirect.WiFiDirectDevice.FromIdAsync(deviceId);

        if (wfdDevice == null)
        {
            result = "Connection to " + deviceId + " failed.";
        }

        // Register for connection status change notification.
        wfdDevice.ConnectionStatusChanged += new TypedEventHandler<Windows.Devices.WiFiDirect.WiFiDirectDevice, object>(OnConnectionChanged);

        // Get the EndpointPair information.
        var EndpointPairCollection = wfdDevice.GetConnectionEndpointPairs();

        if (EndpointPairCollection.Count > 0)
        {
            var endpointPair = EndpointPairCollection[0];
            result = "Local IP address " + endpointPair.LocalHostName.ToString() + 
                " connected to remote IP address " + endpointPair.RemoteHostName.ToString();
        }
        else
        {
           result = "Connection to " + deviceId + " failed.";
        }
    }
    catch (Exception err)
    {
        // Handle error.
        result = "Error occurred: " + err.Message;
    }

    return result;
}

private void OnConnectionChanged(object sender, object arg)
{
    Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus status = 
        (Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus)arg;

    if (status == Windows.Devices.WiFiDirect.WiFiDirectConnectionStatus.Connected)
    {
        // Connection successful.
    }
    else
    {
        // Disconnected.
        Disconnect();
    }
}

private void Disconnect()
{
    if (wfdDevice != null) 
    {
        wfdDevice.Dispose(); 
    }
}

설명

WiFiDirectDevice 클래스를 사용하여 Wi-Fi Direct(WFD) 지원 디바이스가 있는 다른 디바이스와 소켓 연결을 설정할 수 있습니다. GetDeviceSelector 메서드를 호출하여 Wi-Fi Direct 디바이스에 대한 디바이스 식별자를 가져올 수 있습니다. 컴퓨터에서 WiFiDirectDevice 에 대한 참조가 있으면 GetConnectionEndpointPairs 메서드를 호출하여 EndpointPair 개체를 가져와 Windows.Networking.Sockets 네임스페이스의 클래스를 사용하여 소켓 연결을 설정할 수 있습니다.

연결이 설정되거나 연결이 끊어질 때 알림을 받을 ConnectionStatusChanged 이벤트에 대한 처리기를 추가할 수 있습니다.

한 번에 하나의 앱만 Wi-Fi Direct 디바이스에 연결할 수 있습니다.

Wi-Fi Direct 디바이스와 통신하려면 근접 기능을 사용하도록 설정해야 합니다.

추가 정보