Share via


WiFiDirectDevice 類別

定義

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

public ref class WiFiDirectDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class WiFiDirectDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class WiFiDirectDevice : System.IDisposable
Public NotInheritable Class WiFiDirectDevice
Implements IDisposable
繼承
Object Platform::Object IInspectable WiFiDirectDevice
屬性
實作

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

範例

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 API 建立通訊端連線。

您可以新增 ConnectionStatusChanged 事件的處理常式,以在連線建立或中斷連線時收到通知。

一次只能有一個應用程式連線到Wi-Fi直接裝置。

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

屬性

ConnectionStatus

取得WiFi-Direct裝置的線上狀態。

DeviceId

取得 Wi-Fi Direct 裝置的 DeviceInformation 識別碼

方法

Close()

關閉作用中Wi-Fi直接裝置連線。

Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

FromIdAsync(String)

為指定的裝置介面識別碼建立 WiFiDirectDevice 類別的實例。

FromIdAsync(String, WiFiDirectConnectionParameters)

針對具有特定連線參數的指定裝置介面識別碼,建立 WiFiDirectDevice 類別的實例。

GetConnectionEndpointPairs()

取得Wi-Fi直接裝置作為端點組的網路位址集合。

GetDeviceSelector()

傳回類別選取字串,您可以用來列舉直接裝置Wi-Fi。

GetDeviceSelector(WiFiDirectDeviceSelectorType)

傳回類別選取字串,您可以用來列舉特定Wi-Fi直接裝置選取器類型的 Wi-Fi Direct 裝置。

事件

ConnectionStatusChanged

發生于Wi-Fi直接裝置連線或中斷連線時。

適用於

另請參閱