ProximityMessage ProximityMessage ProximityMessage ProximityMessage Class

Represents a message that's received from a subscription.

Syntax

Declaration

public sealed class ProximityMessagepublic sealed class ProximityMessagePublic NotInheritable Class ProximityMessagepublic sealed class ProximityMessage

Remarks

Messages published using the PublishMessage(String, String), PublishBinaryMessage(String, IBuffer), or PublishUriMessage(Uri) methods and received by the MessageReceivedHandler passed to the SubscribeForMessage(String, MessageReceivedHandler) method are of type ProximityMessage.

Examples

   Windows.Networking.Proximity.ProximityDevice proximityDevice;
   long publishedMessageId = -1;
   long subscribedMessageId = -1;

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

       if (proximityDevice != null)
       {
           PublishMessageButton.Click += PublishMessage;
           SubscribeForMessageButton.Click += SubscribeForMessage;
     StopSubscribingForMessageButton.Click += StopSubscribingForMessage;
     StopPublishingMessageButton.Click += StopPublishingMessage;
       }
       else
       {
           WriteMessageText("Failed to initialized proximity device.\n");
       }
   }

   private void PublishMessage(object sender, RoutedEventArgs e)
   {
       // Stop publishing the current message.
       if (publishedMessageId != -1)
       {
           proximityDevice.StopPublishingMessage(publishedMessageId);
       }

       publishedMessageId = 
     proximityDevice.PublishMessage("Windows.SampleMessage", MessageTextBlock.Text);
   }

   private void SubscribeForMessage(object sender, RoutedEventArgs e)
   {
       // Only subscribe for the message one time.
       if (subscribedMessageId == -1)
       {
           subscribedMessageId = 
     proximityDevice.SubscribeForMessage("Windows.SampleMessage", messageReceived);
       }
   }

   private void messageReceived(
       Windows.Networking.Proximity.ProximityDevice device, 
       Windows.Networking.Proximity.ProximityMessage message)
   {
       MessageBlock.Text += "Message received: " + message.DataAsString + "\n";
   }

private void StopSubscribingForMessage(object sender, RoutedEventArgs e)
   {
    proximityDevice.StopSubscribingForMessage(subscribedMessageId);
       subscribedMessageId = -1;
}

private void StopPublishingMessage(object sender, RoutedEventArgs e)
   {
    proximityDevice.StopPublishingMessage(publishedMessageId);
       publishedMessageId = -1;
}

   // 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;
           });
   }
       function id(elementId) {
           return document.getElementById(elementId);
       }

       var proximityDevice;
       var publishedMessageId = -1;
       var subscribedMessageId = -1;

       function initializeProximityDevice() {
           proximityDevice = Windows.Networking.Proximity.ProximityDevice.getDefault();

           if (proximityDevice) {
               id("publishMessageButton").addEventListener("click", publishMessage);
               id("subscribeForMessageButton").addEventListener("click", subscribeForMessage);
	id("stopSubscribingForMessageButton").addEventListener("click", 
	    stopSubScribingForMessage);
	id("stopPublishingMessageButton").addEventListener("click", 
	    stopPublishingMessage);
           }
           else {
               id("messageDiv").innerHTML += "Failed to initialized proximity device.<br />";
           }
       }

       function publishMessage() {
           // Stop publishing the current message.
           if (publishedMessageId != -1) {
               proximityDevice.stopPublishingMessage(publishedMessageId);
           }

           publishedMessageId = 
	proximityDevice.publishMessage("Windows.SampleMessage", id("messageText").value);
       }

       function subscribeForMessage() {
           // Only subscribe for the message one time.
           if (subscribedMessageId === -1) {
               subscribedMessageId = 
	    proximityDevice.subscribeForMessage("Windows.SampleMessage", messageReceived);
           }
       }

       function messageReceived(device, message) {
           id("messageDiv").innerHTML += "Message received: " + message.dataAsString + "<br />";
       }

function stopSubscribingForMessage() {
    proximityDevice.stopSubscribingForMessage(subscribedMessageId);
           subscribedMessageId = -1;
}

function stopPublishingMessage() {
    proximityDevice.stopPublishingMessage(publishedMessageId);
           publishedMessageId = -1;
}
Private proximityDevice As Windows.Networking.Proximity.ProximityDevice
Private publishedMessageId As Long = -1
Private subscribedMessageId As Long = -1

Private Sub initializeProximityDevice()
    proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()

    If proximityDevice IsNot Nothing Then
        AddHandler PublishMessageButton.Click, AddressOf PublishMessage
        AddHandler SubscribeForMessageButton.Click, AddressOf SubscribeForMessage
        AddHandler StopSubscribingForMessageButton.Click, AddressOf StopSubscribingForMessage
        AddHandler StopPublishingMessageButton.Click, AddressOf StopPublishingMessage
    Else
        WriteMessageText("Failed to initialized proximity device." & vbTab)
    End If
End Sub

Private Sub PublishMessage(sender As Object, e As RoutedEventArgs)
    ' Stop publishing the current message.
    If publishedMessageId <> -1 Then
        proximityDevice.StopPublishingMessage(publishedMessageId)
    End If

    publishedMessageId =
        proximityDevice.PublishMessage("Windows.SampleMessage", MessageTextBlock.Text)
End Sub

Private Sub SubscribeForMessage(sender As Object, e As RoutedEventArgs)
    ' Only subscribe for the message one time.
    If subscribedMessageId = -1 Then
        subscribedMessageId =
        proximityDevice.SubscribeForMessage("Windows.SampleMessage", AddressOf messageReceived)
    End If
End Sub

Private Sub messageReceived(
    device As Windows.Networking.Proximity.ProximityDevice,
    message As Windows.Networking.Proximity.ProximityMessage)

    MessageBlock.Text &= "Message received: " & message.DataAsString & vbTab
End Sub

Private Sub StopSubscribingForMessage(sender As Object, e As RoutedEventArgs)
    proximityDevice.StopSubscribingForMessage(subscribedMessageId)
    subscribedMessageId = -1
End Sub

Private Sub StopPublishingMessage(sender As Object, e As RoutedEventArgs)
    proximityDevice.StopPublishingMessage(publishedMessageId)
    publishedMessageId = -1
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

Properties summary

Gets the binary data of the message.

Gets the message data as text.

Gets the type of the message.

Gets the subscription ID of the message.

Properties

  • Data
    Data
    Data
    Data

    Gets the binary data of the message.

    public IBuffer Data { get; }public IBuffer Data { get; }Public ReadOnly Property Data As IBufferpublic IBuffer Data { get; }

    Property Value

  • DataAsString
    DataAsString
    DataAsString
    DataAsString

    Gets the message data as text.

    public string DataAsString { get; }public string DataAsString { get; }Public ReadOnly Property DataAsString As stringpublic string DataAsString { get; }

    Property Value

    • string
      string
      string
      string

      The message data as text.

    Remarks

    The DataAsString property is available only if the binary data of the message contains only text (UTF8) characters. Otherwise, the DataAsString property returns unpredictable results. You should not attempt to use the DataAsString property unless you are certain the data was received as UTF8 encoded characters. You can send a message as UTF8 encoded characters using the PublishMessage(String, String) method.

    Examples

       Windows.Networking.Proximity.ProximityDevice proximityDevice;
       long publishedMessageId = -1;
       long subscribedMessageId = -1;
    
       private void initializeProximityDevice()
       {
           proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault();
    
           if (proximityDevice != null)
           {
               PublishMessageButton.Click += PublishMessage;
               SubscribeForMessageButton.Click += SubscribeForMessage;
         StopSubscribingForMessageButton.Click += StopSubscribingForMessage;
         StopPublishingMessageButton.Click += StopPublishingMessage;
           }
           else
           {
               WriteMessageText("Failed to initialized proximity device.\n");
           }
       }
    
       private void PublishMessage(object sender, RoutedEventArgs e)
       {
           // Stop publishing the current message.
           if (publishedMessageId != -1)
           {
               proximityDevice.StopPublishingMessage(publishedMessageId);
           }
    
           publishedMessageId = 
         proximityDevice.PublishMessage("Windows.SampleMessage", MessageTextBlock.Text);
       }
    
       private void SubscribeForMessage(object sender, RoutedEventArgs e)
       {
           // Only subscribe for the message one time.
           if (subscribedMessageId == -1)
           {
               subscribedMessageId = 
         proximityDevice.SubscribeForMessage("Windows.SampleMessage", messageReceived);
           }
       }
    
       private void messageReceived(
           Windows.Networking.Proximity.ProximityDevice device, 
           Windows.Networking.Proximity.ProximityMessage message)
       {
           MessageBlock.Text += "Message received: " + message.DataAsString + "\n";
       }
    
    private void StopSubscribingForMessage(object sender, RoutedEventArgs e)
       {
        proximityDevice.StopSubscribingForMessage(subscribedMessageId);
           subscribedMessageId = -1;
    }
    
    private void StopPublishingMessage(object sender, RoutedEventArgs e)
       {
        proximityDevice.StopPublishingMessage(publishedMessageId);
           publishedMessageId = -1;
    }
    
       // 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;
               });
       }
    
           function id(elementId) {
               return document.getElementById(elementId);
           }
    
           var proximityDevice;
           var publishedMessageId = -1;
           var subscribedMessageId = -1;
    
           function initializeProximityDevice() {
               proximityDevice = Windows.Networking.Proximity.ProximityDevice.getDefault();
    
               if (proximityDevice) {
                   id("publishMessageButton").addEventListener("click", publishMessage);
                   id("subscribeForMessageButton").addEventListener("click", subscribeForMessage);
    	id("stopSubscribingForMessageButton").addEventListener("click", 
    	    stopSubScribingForMessage);
    	id("stopPublishingMessageButton").addEventListener("click", 
    	    stopPublishingMessage);
               }
               else {
                   id("messageDiv").innerHTML += "Failed to initialized proximity device.<br />";
               }
           }
    
           function publishMessage() {
               // Stop publishing the current message.
               if (publishedMessageId != -1) {
                   proximityDevice.stopPublishingMessage(publishedMessageId);
               }
    
               publishedMessageId = 
    	proximityDevice.publishMessage("Windows.SampleMessage", id("messageText").value);
           }
    
           function subscribeForMessage() {
               // Only subscribe for the message one time.
               if (subscribedMessageId === -1) {
                   subscribedMessageId = 
    	    proximityDevice.subscribeForMessage("Windows.SampleMessage", messageReceived);
               }
           }
    
           function messageReceived(device, message) {
               id("messageDiv").innerHTML += "Message received: " + message.dataAsString + "<br />";
           }
    
    function stopSubscribingForMessage() {
        proximityDevice.stopSubscribingForMessage(subscribedMessageId);
               subscribedMessageId = -1;
    }
    
    function stopPublishingMessage() {
        proximityDevice.stopPublishingMessage(publishedMessageId);
               publishedMessageId = -1;
    }
    
    Private proximityDevice As Windows.Networking.Proximity.ProximityDevice
    Private publishedMessageId As Long = -1
    Private subscribedMessageId As Long = -1
    
    Private Sub initializeProximityDevice()
        proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()
    
        If proximityDevice IsNot Nothing Then
            AddHandler PublishMessageButton.Click, AddressOf PublishMessage
            AddHandler SubscribeForMessageButton.Click, AddressOf SubscribeForMessage
            AddHandler StopSubscribingForMessageButton.Click, AddressOf StopSubscribingForMessage
            AddHandler StopPublishingMessageButton.Click, AddressOf StopPublishingMessage
        Else
            WriteMessageText("Failed to initialized proximity device." & vbTab)
        End If
    End Sub
    
    Private Sub PublishMessage(sender As Object, e As RoutedEventArgs)
        ' Stop publishing the current message.
        If publishedMessageId <> -1 Then
            proximityDevice.StopPublishingMessage(publishedMessageId)
        End If
    
        publishedMessageId =
            proximityDevice.PublishMessage("Windows.SampleMessage", MessageTextBlock.Text)
    End Sub
    
    Private Sub SubscribeForMessage(sender As Object, e As RoutedEventArgs)
        ' Only subscribe for the message one time.
        If subscribedMessageId = -1 Then
            subscribedMessageId =
            proximityDevice.SubscribeForMessage("Windows.SampleMessage", AddressOf messageReceived)
        End If
    End Sub
    
    Private Sub messageReceived(
        device As Windows.Networking.Proximity.ProximityDevice,
        message As Windows.Networking.Proximity.ProximityMessage)
    
        MessageBlock.Text &= "Message received: " & message.DataAsString & vbTab
    End Sub
    
    Private Sub StopSubscribingForMessage(sender As Object, e As RoutedEventArgs)
        proximityDevice.StopSubscribingForMessage(subscribedMessageId)
        subscribedMessageId = -1
    End Sub
    
    Private Sub StopPublishingMessage(sender As Object, e As RoutedEventArgs)
        proximityDevice.StopPublishingMessage(publishedMessageId)
        publishedMessageId = -1
    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
    
  • MessageType
    MessageType
    MessageType
    MessageType

    Gets the type of the message.

    public string MessageType { get; }public string MessageType { get; }Public ReadOnly Property MessageType As stringpublic string MessageType { get; }

    Property Value

    • string
      string
      string
      string

      The type of the message.

    Remarks

    Messages are delivered to all applications that have subscribed to the message type (as indicated by the messageType parameter). Message type values are case-sensitive strings that consist of two parts: the protocol and the subtype. The protocol is first, followed by a dot (.) and then the subtype. For the PublishMessage(String, String) method, the protocol must always be "Windows.". The subtype is a string of alphanumeric characters and the following additional characters: . ( ) + , - : = @ ; $ _ ! * ’. The subtype cannot exceed a length of 250 characters.

  • SubscriptionId
    SubscriptionId
    SubscriptionId
    SubscriptionId

    Gets the subscription ID of the message.

    public long SubscriptionId { get; }public long SubscriptionId { get; }Public ReadOnly Property SubscriptionId As longpublic long SubscriptionId { get; }

    Property Value

    • long
      long
      long
      long

      The subscription ID of the message.

Device family

Windows 10 (introduced v10.0.10240.0)

API contract

Windows.Foundation.UniversalApiContract (introduced v1)

Capabilities

ID_CAP_PROXIMITY [Windows Phone] ID_CAP_PROXIMITY [Windows Phone]
proximity

Attributes

Windows.Foundation.Metadata.ContractVersionAttribute
Windows.Foundation.Metadata.DualApiPartitionAttribute
Windows.Foundation.Metadata.MarshalingBehaviorAttribute

Details

Assembly

Windows.Networking.Proximity.dll