Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

ProximityMessage Class

Definition

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Represents a message that's received from a subscription.

public ref class ProximityMessage sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ProximityMessage final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ProximityMessage
Public NotInheritable Class ProximityMessage
Inheritance
Object Platform::Object IInspectable ProximityMessage
Attributes

Windows requirements

Requirements Description
Device family
Windows 10 (introduced in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)
App capabilities
proximity

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;
 });
}
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

Remarks

Messages published using the PublishMessage, PublishBinaryMessage, or PublishUriMessage methods and received by the MessageReceivedEventHandler passed to the SubscribeForMessage method are of type ProximityMessage.

Properties

Name Description
Data

Gets the binary data of the message.

DataAsString

Gets the message data as text.

MessageType

Gets the type of the message.

SubscriptionId

Gets the subscription ID of the message.

Applies to

See also


Feedback

Was this page helpful?