Windows.Devices.WiFiDirect.Services 命名空間
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供實作您自己的Wi-Fi直接服務的支援。
Wi-Fi Direct 是一種技術,可讓兩部裝置使用 Wi-Fi 直接連線到彼此,而不需要透過存取點加入現有的網路。 Wi-Fi直接服務是一部裝置 (「服務廣告商 」) 透過Wi-Fi直接連線 (服務搜尋者) 提供另一個裝置的功能。 搜尋者藉由建立 會話,利用公告的服務。 指定的裝置可以公告多個服務,也可以搜尋多個服務。 搜尋者和廣告商角色會根據裝置在特定會話中的互動方式來定義。
雖然 Wi-Fi Direct Services 規格會定義數個標準服務,但此 API 僅支援 啟用 服務。 它不支援 傳送、 播放、 列印或 顯示 功能。
類別
WiFiDirectService |
表示Wi-Fi直接服務。 此類別是由搜尋使用 Wi-Fi Direct Service 之裝置上的程式碼使用,以建立與服務提供者Wi-Fi直接服務會話。 |
WiFiDirectServiceAdvertiser |
代表服務廣告商。 此類別是由公告 Wi-Fi Direct Services 的裝置上的程式碼使用,以公告服務。 |
WiFiDirectServiceAutoAcceptSessionConnectedEventArgs |
在引發 WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected 事件時傳回。 |
WiFiDirectServiceProvisioningInfo |
包含Wi-Fi直接服務的布建資訊。 |
WiFiDirectServiceRemotePortAddedEventArgs |
引發 WiFiDirectServiceSession.RemotePortAdded 事件時傳回。 您的事件處理常式應該使用這項資訊來建立新埠的新通訊端連線。 |
WiFiDirectServiceSession |
表示 Wi-Fi Direct Services (WFDS) 會話。 |
WiFiDirectServiceSessionDeferredEventArgs |
引發 WiFiDirectService.SessionDeferred 事件時傳回。 |
WiFiDirectServiceSessionRequest |
描述Wi-Fi直接服務會話要求。 |
WiFiDirectServiceSessionRequestedEventArgs |
列舉
WiFiDirectServiceAdvertisementStatus | |
WiFiDirectServiceConfigurationMethod |
描述在建立會話時如何執行服務組態的值。 一般而言,不需要輸入,或會話中的一個裝置會顯示 PIN,而另一個裝置需要輸入 PIN。 |
WiFiDirectServiceError | |
WiFiDirectServiceIPProtocol |
定義常數,這個常數會在引發 WiFiDirectServiceSession.RemotePortAdded 事件時指定新埠的 IP 通訊協定。 |
WiFiDirectServiceSessionErrorStatus | |
WiFiDirectServiceSessionStatus |
用來描述Wi-Fi直接服務會話狀態的值。 |
WiFiDirectServiceStatus |
用來描述服務狀態的值。 |
備註
設定群組擁有者 (GO)
您可能想要能夠精確控制對等對等 (P2P) 群組的成員是群組擁有者 (GO) 。 您的程式碼應該使用 WiFiDirectAdvertiser.PreferGroupOwnerMode 屬性來指定指定的廣告商想要成為 GO。 不過,如果先前透過 Wi-Fi Direct 配對兩個裝置,則來自該配對的已儲存設定檔中的Wi-Fi直接角色會覆寫廣告商的指定喜好設定。 若要保證 P2P 配對中的指定裝置將是 GO,您必須先使用 Windows.Devices.Enumeration 命名空間所提供的方法來刪除任何現有的配對資料。
請注意,配對設定檔會配對兩個 MAC 位址,因此取消配對兩個裝置會套用至這兩個裝置之間使用 Wi-Fi Direct 的所有應用程式。 您的應用程式絕對不應該假設配對設定檔存在,或者它尚未由另一個應用程式變更,即使它過去已與裝置配對也一樣。 您應該從目前的設定檔取得目前的設定檔資訊,而不是儲存設定檔資訊,並假設該設定檔在稍後仍為 true。 另一個應用程式可能會在過渡期間變更配對設定檔。
下列程式碼會尋找本機裝置與另一部裝置之間的任何Wi-Fi直接配對設定檔,以及取消配對這兩個裝置。 在這段程式碼成功取消配對這兩個裝置之後,後續配對將會遵守 WiFiDirectAdvertiser.PreferGroupOwnerMode 值在配對時作用中。
using Windows.Devices.Enumeration;
private async void Unpair_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
if (DiscoveredServices.Items.Count > 0)
{
DiscoveredDeviceWrapper service =
(DiscoveredDeviceWrapper)DiscoveredServices.Items[DiscoveredServices.SelectedIndex];
String[] aepId = service.DeviceInfo.Id.Split('#');
String deviceSelector = "System.Devices.DeviceInstanceId:=\"SWD\\WiFiDirect\\" + aepId[1] + "\"";
// Check if device is paired
DeviceInformationCollection pairedDeviceCollection =
await DeviceInformation.FindAllAsync(deviceSelector, null, DeviceInformationKind.DeviceInterface);
if (pairedDeviceCollection.Count > 0)
{
try
{
DeviceInformation devInfo = pairedDeviceCollection[0];
await devInfo.Pairing.UnpairAsync();
MainPage.Current.NotifyUser("UnpairAsync succeeded", NotifyType.StatusMessage);
}
catch (Exception ex)
{
MainPage.Current.NotifyUser("UnpairAsync failed: " + ex.Message, NotifyType.ErrorMessage);
}
}
}
}