ProximityDevice.PublishMessage Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
PublishMessage(String, String) |
Veröffentlicht eine Nachricht für Abonnenten des angegebenen Nachrichtentyps. |
PublishMessage(String, String, MessageTransmittedHandler) |
Veröffentlicht eine Nachricht für Abonnenten des angegebenen Nachrichtentyps. Der angegebene Handler wird aufgerufen, wenn die Nachricht übertragen wurde. |
PublishMessage(String, String)
Veröffentlicht eine Nachricht für Abonnenten des angegebenen Nachrichtentyps.
public:
virtual long long PublishMessage(Platform::String ^ messageType, Platform::String ^ message) = PublishMessage;
/// [Windows.Foundation.Metadata.Overload("PublishMessage")]
long PublishMessage(winrt::hstring const& messageType, winrt::hstring const& message);
[Windows.Foundation.Metadata.Overload("PublishMessage")]
public long PublishMessage(string messageType, string message);
function publishMessage(messageType, message)
Public Function PublishMessage (messageType As String, message As String) As Long
Parameter
- messageType
-
String
Platform::String
winrt::hstring
Der Typ der Nachricht, die an Abonnenten übermittelt werden soll.
- message
-
String
Platform::String
winrt::hstring
Die Nachricht, die an Abonnenten übermittelt werden soll.
Gibt zurück
Eine eindeutige Veröffentlichungs-ID für die veröffentlichte Nachricht. Übergeben Sie diesen Wert an die StopPublishingMessage-Methode , um die Veröffentlichung der Nachricht zu beenden.
- Attribute
Windows-Anforderungen
App-Funktionen |
ID_CAP_PROXIMITY [Windows Phone]
proximity
ID_CAP_PROXIMITY [Windows Phone]
|
Beispiele
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
Hinweise
Sie können veröffentlichte Nachrichten abonnieren, indem Sie die SubscribeForMessage-Methode verwenden.
Nachrichten werden weiterhin veröffentlicht, bis die StopPublishingMessage-Methode aufgerufen oder das ProximityDevice-Objekt freigegeben wird.
Nachrichten werden an alle Anwendungen übermittelt, die den Nachrichtentyp abonniert haben (wie durch den messageType-Parameter angegeben). Nachrichtentypwerte sind Zeichenfolgen, bei denen die Groß-/Kleinschreibung beachtet wird, die aus zwei Teilen bestehen: dem Protokoll und dem Untertyp. Das Protokoll ist zuerst, gefolgt von einem Punkt (.) und dann dem Untertyp. Für die PublishMessage-Methode muss das Protokoll immer "Windows" sein. Der Untertyp ist eine Zeichenfolge aus alphanumerischen Zeichen und den folgenden zusätzlichen Zeichen: . ( ) + , - : = @ ; $ _ ! * '. Der Untertyp darf eine Länge von 250 Zeichen nicht überschreiten.
Um Nachrichten mit einem anderen Nachrichtentyp wie "WindowsMime." oder "NDEF:WriteTag" zu veröffentlichen, müssen Sie die PublishBinaryMessage-Methode verwenden.
Sie können die PublishUriMessage-Methode verwenden, um einen URI (Uniform Resource Identifier) auf einem benachbarten Computer zu veröffentlichen.
Nachrichten werden in UTF-8-Zeichen konvertiert, bevor sie übertragen werden.
Für UWP-Apps sind Veröffentlichungen und Abonnements nur aktiv, wenn sich die aufrufende App im Vordergrund befindet.
Wichtig
Die Näherungs-APIs bieten keine Authentifizierung, Verschlüsselung oder Nachrichtenintegrität. Verwenden Sie die Nähe nicht, um vertrauliche Benutzerinformationen wie Kennwörter, Finanzdaten, SMS, E-Mails, Fotos oder Behörden-ID-Nummern auszutauschen.
Weitere Informationen
- PublishMessage(String, String, MessageTransmittedHandler)
- PublishBinaryMessage(String, IBuffer)
- PublishUriMessage(Uri)
- StopPublishingMessage(Int64)
- Näherung und Tippen (C#/VB/C++)
- Näherungsbeispiel
Gilt für:
PublishMessage(String, String, MessageTransmittedHandler)
Veröffentlicht eine Nachricht für Abonnenten des angegebenen Nachrichtentyps. Der angegebene Handler wird aufgerufen, wenn die Nachricht übertragen wurde.
public:
virtual long long PublishMessage(Platform::String ^ messageType, Platform::String ^ message, MessageTransmittedHandler ^ messageTransmittedHandler) = PublishMessage;
/// [Windows.Foundation.Metadata.Overload("PublishMessageWithCallback")]
long PublishMessage(winrt::hstring const& messageType, winrt::hstring const& message, MessageTransmittedHandler const& messageTransmittedHandler);
[Windows.Foundation.Metadata.Overload("PublishMessageWithCallback")]
public long PublishMessage(string messageType, string message, MessageTransmittedHandler messageTransmittedHandler);
function publishMessage(messageType, message, messageTransmittedHandler)
Public Function PublishMessage (messageType As String, message As String, messageTransmittedHandler As MessageTransmittedHandler) As Long
Parameter
- messageType
-
String
Platform::String
winrt::hstring
Der Typ der Nachricht, die an Abonnenten übermittelt werden soll.
- message
-
String
Platform::String
winrt::hstring
Die Nachricht, die an Abonnenten übermittelt werden soll.
- messageTransmittedHandler
- MessageTransmittedHandler
Der Handler, der aufgerufen werden soll, wenn die Nachricht übertragen wurde.
Gibt zurück
Eine eindeutige Veröffentlichungs-ID für die veröffentlichte Nachricht.
- Attribute
Windows-Anforderungen
App-Funktionen |
ID_CAP_PROXIMITY [Windows Phone]
proximity
ID_CAP_PROXIMITY [Windows Phone]
|
Beispiele
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,
MessagePublished);
}
private void MessagePublished(
Windows.Networking.Proximity.ProximityDevice sender,
long messageId)
{
// The message has been successfully published.
}
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,
AddressOf MessagePublished)
End Sub
Private Sub MessagePublished(
sender As Windows.Networking.Proximity.ProximityDevice,
messageId As Long)
' The message has been successfully published.
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
Hinweise
Sie können veröffentlichte Nachrichten abonnieren, indem Sie die SubscribeForMessage-Methode verwenden.
Nachrichten werden weiterhin veröffentlicht, bis die StopPublishingMessage-Methode aufgerufen oder das ProximityDevice-Objekt freigegeben wird.
Nachrichten werden an alle Anwendungen übermittelt, die den Nachrichtentyp abonniert haben (wie durch den messageType-Parameter angegeben). Nachrichtentypwerte sind Zeichenfolgen, bei denen die Groß-/Kleinschreibung beachtet wird, die aus zwei Teilen bestehen: dem Protokoll und dem Untertyp. Das Protokoll ist zuerst, gefolgt von einem Punkt (.) und dann dem Untertyp. Für die PublishMessage-Methode muss das Protokoll immer "Windows" sein. Der Untertyp ist eine Zeichenfolge aus alphanumerischen Zeichen und den folgenden zusätzlichen Zeichen: . ( ) + , - : = @ ; $ _ ! * '. Der Untertyp darf eine Länge von 250 Zeichen nicht überschreiten.
Um Nachrichten mit einem anderen Nachrichtentyp wie "WindowsMime." oder "NDEF:WriteTag" zu veröffentlichen, müssen Sie die PublishBinaryMessage-Methode verwenden.
Sie können die PublishUriMessage-Methode verwenden, um einen URI (Uniform Resource Identifier) auf einem benachbarten Computer zu veröffentlichen.
Nachrichten werden in UTF-8-Zeichen konvertiert, bevor sie übertragen werden.
Für UWP-Apps sind Veröffentlichungen und Abonnements nur aktiv, wenn sich die aufrufende App im Vordergrund befindet.
Wichtig
Die Näherungs-APIs bieten keine Authentifizierung, Verschlüsselung oder Nachrichtenintegrität. Verwenden Sie die Nähe nicht, um vertrauliche Benutzerinformationen wie Kennwörter, Finanzdaten, SMS, E-Mails, Fotos oder Behörden-ID-Nummern auszutauschen.
Weitere Informationen
- PublishMessage(String, String)
- PublishBinaryMessage(String, IBuffer)
- PublishUriMessage(Uri)
- StopPublishingMessage(Int64)
- Näherung und Tippen (C#/VB/C++)
- Näherungsbeispiel