Windows.Devices.WiFiDirect.Services 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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);
}
}
}
}