WiFiDirectDevice 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
管理與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
- 繼承
- 屬性
- 實作
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直接裝置連線或中斷連線時。 |