Windows.Devices.WiFiDirect 命名空間

包含類別,這些類別支援連線到相關聯的Wi-Fi直接裝置,以及電腦、平板電腦和手機的相關端點。

類別

WiFiDirectAdvertisement

代表Wi-Fi直接廣告,並允許應用程式控制廣告中的接聽狀態和自訂資訊元素。

WiFiDirectAdvertisementPublisher

要發佈Wi-Fi Direct 廣告的物件。

WiFiDirectAdvertisementPublisherStatusChangedEventArgs

提供WiFiDirectAdvertisementPublisherStatusChanged事件的資料。

WiFiDirectConnectionListener

用來接聽傳入Wi-Fi直接連線要求的類別。

WiFiDirectConnectionParameters

應用程式用來指定Wi-Fi直接連線/配對作業的連接參數。

使用此類別的範例應用程式包括Wi-Fi Direct範例

WiFiDirectConnectionRequest

由 WiFiDirectConnectionListener接收的Wi-Fi直接連線要求。

WiFiDirectConnectionRequestedEventArgs

提供WiFiDirectConnectionListenerConnectionRequested事件的資料。

WiFiDirectDevice

管理與Wi-Fi直接裝置的連線。

WiFiDirectInformationElement

表示Wi-Fi直接封包中的資訊元素。

WiFiDirectLegacySettings

管理「舊版」模式的設定, (未Wi-Fi Direct連線到所公告的存取點。)

列舉

WiFiDirectAdvertisementListenStateDiscoverability

指定直接裝置是否正在接聽和可探索Wi-Fi。

WiFiDirectAdvertisementPublisherStatus

代表 WiFiDirectAdvertisementPublisher的可能狀態。

WiFiDirectConfigurationMethod

指定Wi-Fi Direct 組態方法。 設定是使用者告訴一個Wi-Fi直接設備連接到另一個Wi-Fi直接設備的方式。

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直接裝置。

您必須啟用 鄰近功能 ,才能與Wi-Fi直接裝置通訊。

另請參閱