Windows.Devices.WiFiDirect.Services 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
独自の Wi-Fi Direct Services を実装するためのサポートを提供します。
Wi-Fi Direct は、2 つのデバイスがアクセス ポイントを介して既存のネットワークに参加することなく、Wi-Fi を使用して相互に直接接続できるようにするテクノロジです。 Wi-Fiダイレクト サービスは、1 つのデバイス ( サービス広告主) が、Wi-Fi直接接続を介して別のデバイス ( Service Seeker) に機能を提供する方法です。 シークャーは 、セッションを確立することによって、アドバタイズされたサービスを利用します。 特定のデバイスは、複数のサービスをアドバタイズし、複数のサービスをシークすることもできます。 Seeker ロールと広告主ロールは、特定のセッションでのデバイスの対話方法に関して定義されます。
Wi-Fi Direct Services 仕様ではいくつかの標準サービスが定義されていますが、この API では Enable サービスのみがサポートされています。 送信、再生、印刷、または表示の機能はサポートされていません。
クラス
WiFiDirectService |
Wi-Fi Direct サービスを表します。 このクラスは、Wi-Fi Direct Service を使用してサービス プロバイダーとのWi-Fiダイレクト サービス セッションを確立しようとするデバイス上のコードによって使用されます。 |
WiFiDirectServiceAdvertiser |
サービス広告主を表します。 このクラスは、ダイレクト サービスをアドバタイズするデバイス上のコードWi-Fi使用して、サービスをアドバタイズします。 |
WiFiDirectServiceAutoAcceptSessionConnectedEventArgs |
WiFiDirectServiceAdvertiser.AutoAcceptSessionConnected イベントが発生したときに返されます。 |
WiFiDirectServiceProvisioningInfo |
Wi-Fi ダイレクト サービスに関するプロビジョニング情報が含まれています。 |
WiFiDirectServiceRemotePortAddedEventArgs |
WiFiDirectServiceSession.RemotePortAdded イベントが発生したときに返されます。 イベント ハンドラーでは、この情報を使用して、新しいポートへの新しいソケット接続を確立する必要があります。 |
WiFiDirectServiceSession |
Wi-Fi Direct Services (WFDS) セッションを表します。 |
WiFiDirectServiceSessionDeferredEventArgs |
WiFiDirectService.SessionDeferred イベントが発生したときに返されます。 |
WiFiDirectServiceSessionRequest |
Wi-Fi Direct Service セッション要求について説明します。 |
WiFiDirectServiceSessionRequestedEventArgs |
WiFiDirectServiceAdvertiser.SessionRequested イベントが発生したときに返されます。 |
列挙型
WiFiDirectServiceAdvertisementStatus | |
WiFiDirectServiceConfigurationMethod |
セッションの確立時のサービス構成の実行方法を示す値。 通常、入力が不要であるか、セッション内の 1 つのデバイスに PIN が表示され、もう 1 つのデバイスで PIN を入力する必要があります。 |
WiFiDirectServiceError |
WiFiDirectServiceAdvertiser.ServiceError プロパティに使用される値。 |
WiFiDirectServiceIPProtocol |
WiFiDirectServiceSession.RemotePortAdded イベントが発生したときに新しいポートの IP プロトコルを指定する定数を定義します。 |
WiFiDirectServiceSessionErrorStatus |
WiFiDirectServiceSession.ErrorStatus プロパティで使用される値。 |
WiFiDirectServiceSessionStatus |
Wi-Fiダイレクト サービス セッションの状態を表すために使用される値。 |
WiFiDirectServiceStatus |
サービスの状態を表すために使用される値。 |
注釈
グループ所有者の設定 (GO)
ピア ツー ピア (P2P) グループのどのメンバーがグループ所有者 (GO) であるかを正確に制御できる場合があります。 コードでは 、WiFiDirectAdvertiser.PreferGroupOwnerMode プロパティを使用して、特定の広告主が GO を使用することを指定する必要があります。 ただし、以前に 2 つのデバイスが Wi-Fi Direct 経由でペアリングされている場合は、そのペアリングから保存されたプロファイルのWi-Fiダイレクト ロールが広告主の指定した設定よりも優先されます。 P2P ペアリング内の特定のデバイスが GO であることを保証するには、 まず、Windows.Devices.Enumeration 名前空間によって提供されるメソッドを使用して、既存のペアリング データを削除する必要があります。
ペアリング プロファイルでは 2 つの MAC アドレスがペアになっているので、2 つのデバイスのペアリング解除は、これら 2 つのデバイス間で Wi-Fi Direct を使用するすべてのアプリに適用されることに注意してください。 アプリでは、ペアリング プロファイルが存在する、または過去にデバイスとペアリングされている場合でも、別のアプリによって変更されていないことを想定しないでください。 プロファイル情報を格納するのではなく、現在のプロファイル情報を取得し、後でまだ当てはまると仮定する必要があります。 別のアプリが、その間にペアリング プロファイルを変更した可能性があります。
次のコードでは、ローカル デバイスと別のデバイスの間の 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);
}
}
}
}