Windows.Devices.WiFiDirect.Services 名前空間

Important

Windows。Devices.WiFiDirect.Services 名前空間は非推奨です。

独自の Wi-Fi Direct Services を実装するためのサポートを提供します。

Wi-Fi ダイレクトは、2 つのデバイスがアクセス ポイントを介して既存のネットワークに参加しなくても、Wi-Fi を使用して相互に直接接続できるようにするテクノロジです。 Wi-Fi ダイレクト サービスは、あるデバイス ( サービス広告主) が、Wi-Fi 直接接続を介して別のデバイス ( サービス シーカー) に機能を提供する方法です。 シークャーは、セッションを確立することによって、アドバタイズされたサービスを利用 します。 特定のデバイスは、複数のサービスをアドバタイズし、複数のサービスをシークすることもできます。 Seeker ロールと広告主ロールは、特定のセッションでのデバイスの対話方法に関して定義されます。

Wi-Fi Direct Services 仕様ではいくつかの標準サービスが定義されていますが、この API では Enable サービスのみがサポートされます。 送信再生印刷、または表示の機能はサポートされていません。

クラス

名前 説明
WiFiDirectService

Important

Windows。Devices.WiFiDirect.Services 名前空間は非推奨です。

Wi-Fi Direct サービスを表します。 このクラスは、Wi-Fi ダイレクト サービスを使用してサービス プロバイダーとの Wi-Fi ダイレクト サービス セッションを確立しようとするデバイス上のコードによって使用されます。

WiFiDirectServiceAdvertiser

Deprecated. サービス広告主を表します。 このクラスは、ダイレクト サービスをアドバタイズするデバイス上のコード Wi-Fi 使用して、サービスをアドバタイズします。

WiFiDirectServiceAutoAcceptSessionConnectedEventArgs

Deprecated. WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected イベントが発生したときに返されます。

WiFiDirectServiceProvisioningInfo

Deprecated. Wi-Fi ダイレクト サービスに関するプロビジョニング情報が含まれています。

WiFiDirectServiceRemotePortAddedEventArgs

Deprecated. WiFiDirectServiceSession.RemotePortAdded イベントが発生したときに返されます。 イベント ハンドラーでは、この情報を使用して、新しいポートへの新しいソケット接続を確立する必要があります。

WiFiDirectServiceSession

Deprecated. Wi-Fi Direct Services (WFDS) セッションを表します。

WiFiDirectServiceSessionDeferredEventArgs

Deprecated. WiFiDirectService.SessionDeferred イベントが発生したときに返されます。

WiFiDirectServiceSessionRequest

Deprecated. Wi-Fi ダイレクト サービス セッション要求について説明します。

WiFiDirectServiceSessionRequestedEventArgs

Deprecated. WiFiDirectServiceAdvertiser.SessionRequested イベントが発生したときに返されます。

列挙型

名前 説明
WiFiDirectServiceAdvertisementStatus

Deprecated. WiFiDirectServiceAdvertiser.AdvertisementStatus に使用される値。

WiFiDirectServiceConfigurationMethod

Deprecated. セッションの確立時のサービス構成の実行方法を説明する値。 通常は、入力が不要であるか、セッション内の 1 つのデバイスに PIN が表示され、もう 1 つのデバイスでは PIN を入力する必要があります。

WiFiDirectServiceError

Deprecated. WiFiDirectServiceAdvertiser.ServiceError プロパティに使用される値。

WiFiDirectServiceIPProtocol

Deprecated. WiFiDirectServiceSession.RemotePortAdded イベントが発生したときに新しいポートの IP プロトコルを指定する定数を定義します。

WiFiDirectServiceSessionErrorStatus

Deprecated. WiFiDirectServiceSession.ErrorStatus プロパティで使用される値。

WiFiDirectServiceSessionStatus

Deprecated. Wi-Fi ダイレクト サービス セッションの状態を表すために使用される値。

WiFiDirectServiceStatus

Deprecated. サービスの状態を説明するために使用される値。

注釈

グループ所有者の設定 (GO)

ピア ツー ピア (P2P) グループのどのメンバーがグループ所有者 (GO) であるかを正確に制御できるようにしたい場合があります。 コードでは 、WiFiDirectAdvertiser.PreferGroupOwnerMode プロパティを使用して、特定の広告主が GO を使用することを指定する必要があります。 ただし、以前に 2 つのデバイスが Wi-Fi Direct 経由でペアリングされている場合は、そのペアリングから保存されたプロファイルの Wi-Fi ダイレクト ロールが広告主の指定した設定をオーバーライドします。 P2P ペアリングの特定のデバイスが GO であることを保証するには、まず、Windows によって提供されるメソッドを使用して、既存のペアリング データを削除する必要があります。Devices.Enumeration 名前空間。

ペアリング プロファイルでは 2 つの MAC アドレスがペアになっているので、ペアリング解除する 2 つのデバイスは、これら 2 つのデバイス間で Wi-Fi Direct を使用するすべてのアプリに適用されることに注意してください。 過去にデバイスとペアリングされている場合でも、ペアリング プロファイルが存在する、または別のアプリによって変更されていないことをアプリで想定しないでください。 プロファイル情報を格納するのではなく、現在のプロファイル情報を取得し、後でまだ true であると仮定する必要があります。 別のアプリが、その間にペアリング プロファイルを変更した可能性があります。

次のコードは、ローカル デバイスと別のデバイスの間の Wi-Fi Direct ペアリング プロファイルを検索し、2 つのデバイスのペアリングを解除します。 このコードが 2 つのデバイスのペアリング解除に成功すると、ペアリング時に アクティブな 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);
            }
        }
    }
}

こちらもご覧ください