ProximityDevice クラス

定義

近接デバイスにメッセージを発行したり、近接デバイスからのメッセージをサブスクライブしたりできます。

public ref class ProximityDevice sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ProximityDevice final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ProximityDevice
Public NotInheritable Class ProximityDevice
継承
Object Platform::Object IInspectable ProximityDevice
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)
アプリの機能
ID_CAP_PROXIMITY [Windows Phone] proximity ID_CAP_PROXIMITY [Windows Phone]

Windows.Networking.Proximity.ProximityDevice proximityDevice;

private void InitializeProximityDevice()
{
    proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault();

    if (proximityDevice != null) {
        proximityDevice.DeviceArrived += ProximityDeviceArrived;
        proximityDevice.DeviceDeparted += ProximityDeviceDeparted;

        WriteMessageText("Proximity device initialized.\n");
    }
    else
    {
        WriteMessageText("Failed to initialized proximity device.\n");
    }
}

private void ProximityDeviceArrived(Windows.Networking.Proximity.ProximityDevice device)
{
    WriteMessageText("Proximate device arrived. id = " + device.DeviceId + "\n");
}

private void ProximityDeviceDeparted(Windows.Networking.Proximity.ProximityDevice device)
{
    WriteMessageText("Proximate device departed. id = " + device.DeviceId + "\n");
}

// Write a message to MessageBlock on the UI thread.
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;

async private void WriteMessageText(string message, bool overwrite = false)
{
    await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            if (overwrite)
                MessageBlock.Text = message;
            else
                MessageBlock.Text += message;
        });
}
Dim proximityDevice As Windows.Networking.Proximity.ProximityDevice

Private Sub InitializeProximityDevice()

    proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()

    If proximityDevice IsNot Nothing Then
        AddHandler proximityDevice.DeviceArrived, AddressOf ProximityDeviceArrived
        AddHandler proximityDevice.DeviceDeparted, AddressOf ProximityDeviceDeparted

        WriteMessageText("Proximity device initialized." & vbTab)
    Else
        WriteMessageText("Failed to initialized proximity device." & vbTab)
    End If
End Sub

Private Sub ProximityDeviceArrived(device As Windows.Networking.Proximity.ProximityDevice)
    WriteMessageText("Proximate device arrived. id = " & device.DeviceId & vbTab)
End Sub

Private Sub ProximityDeviceDeparted(device As Windows.Networking.Proximity.ProximityDevice)
    WriteMessageText("Proximate device departed. id = " & device.DeviceId & vbTab)
End Sub

' Write a message to MessageBlock on the UI thread.
Private Async Sub WriteMessageText(message As String, Optional overwrite As Boolean = False)
    Await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
        Sub()
            If overwrite Then
                MessageBlock.Text = message
            Else
                MessageBlock.Text &= message
            End If
        End Sub)
End Sub

注釈

ProximityDevice クラスを使用すると、アプリケーションは、通常、3 センチメートルから 4 センチメートルの範囲内で、デバイス上で実行中のアプリケーションと通信できます。

GetDefault または FromId 静的メソッドを使用して、ProximityDevice のインスタンスを作成できます。

ProximityDevice クラスはパブリッシュ/サブスクライブ セマンティクスを使用し、小さなデータ ブロックのアドバタイズと受信に役立ちます。 大量のデータの場合、または永続的な通信の場合は、 PeerFinder クラスと StreamSocket クラスを使用します。 UWP アプリの場合、パブリケーションとサブスクリプションは、呼び出し元のアプリがフォアグラウンドにある場合にのみアクティブになります。

重要

近接 API では、認証、暗号化、またはメッセージの整合性は提供されません。 パスワード、財務データ、テキスト メッセージ、電子メール、写真、政府 ID 番号などのユーザーの機密情報を交換するために近接通信を使用しないでください。

プロパティ

BitsPerSecond

近接デバイスの転送速度を取得します。

DeviceId

近接デバイスの DeviceInformation ID を 取得します。

MaxMessageBytes

この近接デバイスでサポートされている発行済みメッセージの最大サイズを取得します。

メソッド

FromId(String)

ProximityDevice クラスのインスタンスを作成し、指定した近接デバイス インターフェイスをアクティブにします。

GetDefault()

ProximityDevice クラスのインスタンスを作成し、既定の近接プロバイダーをアクティブにします。

GetDeviceSelector()

近接デバイスの列挙に使用できるクラス選択文字列を返します。

PublishBinaryMessage(String, IBuffer)

指定したメッセージ型のサブスクライバーに、バイナリ データを含むメッセージを発行します。

PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)

指定したメッセージの種類のサブスクライバーにバイナリ データを含むメッセージを発行します。 指定したハンドラーは、メッセージが送信されたときに呼び出されます。

PublishMessage(String, String)

指定したメッセージの種類のサブスクライバーにメッセージを発行します。

PublishMessage(String, String, MessageTransmittedHandler)

指定したメッセージの種類のサブスクライバーにメッセージを発行します。 指定したハンドラーは、メッセージが送信されたときに呼び出されます。

PublishUriMessage(Uri)

Uri (Uniform Resource Identifier) を近接デバイスに発行します。

PublishUriMessage(Uri, MessageTransmittedHandler)

Uri (Uniform Resource Identifier) を近接デバイスに発行します。 指定したハンドラーは、メッセージが送信されたときに呼び出されます。

StopPublishingMessage(Int64)

メッセージの発行を停止します。

StopSubscribingForMessage(Int64)

メッセージ サブスクリプションを取り消します。

SubscribeForMessage(String, MessageReceivedHandler)

指定したメッセージの種類のサブスクリプションを作成します。

イベント

DeviceArrived

デバイスが近接範囲に入ると発生します。

DeviceDeparted

デバイスが近接範囲を離れると発生します。

適用対象

こちらもご覧ください