Condividi tramite


WiFiDirectDevice Classe

Definizione

Gestisce le connessioni ai dispositivi diretti associati 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
Ereditarietà
Object Platform::Object IInspectable WiFiDirectDevice
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

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(); 
    }
}

Commenti

È possibile usare la classe WiFiDirectDevice per stabilire una connessione socket con altri dispositivi che dispongono di un dispositivo compatibile con Direct (WFD) Wi-Fi. È possibile chiamare il metodo GetDeviceSelector per ottenere l'identificatore del dispositivo per un dispositivo Wi-Fi Direct. Dopo avere un riferimento a un WiFiDirectDevice nel computer, è possibile chiamare il metodo GetConnectionEndpointPairs per ottenere un oggetto EndpointPair e stabilire una connessione socket usando l'API Windows.Networking.Sockets .

È possibile aggiungere un gestore per l'evento ConnectionStatusChanged da notificare quando la connessione è stata stabilita o disconnessa.

Una sola app può essere connessa a un dispositivo diretto Wi-Fi alla volta.

È necessario abilitare la funzionalità Prossimità per comunicare con i dispositivi Wi-Fi Direct.

Proprietà

ConnectionStatus

Ottiene lo stato della connessione per il dispositivo WiFi-Direct.

DeviceId

Ottiene l'ID DeviceInformation per il dispositivo Wi-Fi Direct.

Metodi

Close()

Chiudere la connessione del dispositivo diretto Wi-Fi attiva.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

FromIdAsync(String)

Crea un'istanza della classe WiFiDirectDevice per l'ID dell'interfaccia del dispositivo specificato.

FromIdAsync(String, WiFiDirectConnectionParameters)

Crea un'istanza della classe WiFiDirectDevice per l'ID dell'interfaccia del dispositivo specificato con parametri di connessione specifici.

GetConnectionEndpointPairs()

Ottiene una raccolta di indirizzi di rete per il dispositivo diretto Wi-Fi come coppie di endpoint.

GetDeviceSelector()

Restituisce la stringa di selezione della classe che è possibile usare per enumerare Wi-Fi dispositivi Direct.

GetDeviceSelector(WiFiDirectDeviceSelectorType)

Restituisce la stringa di selezione della classe che è possibile usare per enumerare Wi-Fi dispositivi Direct per un tipo di selettore di dispositivi diretto Wi-Fi specifico.

Eventi

ConnectionStatusChanged

Si verifica quando una connessione Wi-Fi dispositivo diretto è connessa o disconnessa.

Si applica a

Vedi anche