共用方式為


Windows.Devices.WiFiDirect.Services 命名空間

提供實作您自己的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

引發 WiFiDirectServiceAdvertiser.SessionRequested 事件時傳回。

列舉

WiFiDirectServiceAdvertisementStatus

用於 WiFiDirectServiceAdvertiser.AdvertisementStatus的值。

WiFiDirectServiceConfigurationMethod

描述在建立會話時如何執行服務組態的值。 一般而言,不需要輸入,或會話中的一個裝置會顯示 PIN,而另一個裝置需要輸入 PIN。

WiFiDirectServiceError

用於 WiFiDirectServiceAdvertiser.ServiceError屬性的值。

WiFiDirectServiceIPProtocol

定義常數,這個常數會在引發 WiFiDirectServiceSession.RemotePortAdded 事件時指定新埠的 IP 通訊協定。

WiFiDirectServiceSessionErrorStatus

WiFiDirectServiceSession.ErrorStatus屬性中使用的值。

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

另請參閱