Freigeben über


ProximityDevice.PublishBinaryMessage Methode

Definition

Überlädt

PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)

Veröffentlicht eine Nachricht, die Binärdaten für Abonnenten des angegebenen Nachrichtentyps enthält. Der angegebene Handler wird aufgerufen, wenn die Nachricht übertragen wurde.

PublishBinaryMessage(String, IBuffer)

Veröffentlicht für Abonnenten des angegebenen Nachrichtentyps eine Nachricht, die Binärdaten enthält.

PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)

Veröffentlicht eine Nachricht, die Binärdaten für Abonnenten des angegebenen Nachrichtentyps enthält. Der angegebene Handler wird aufgerufen, wenn die Nachricht übertragen wurde.

public:
 virtual long long PublishBinaryMessage(Platform::String ^ messageType, IBuffer ^ message, MessageTransmittedHandler ^ messageTransmittedHandler) = PublishBinaryMessage;
/// [Windows.Foundation.Metadata.Overload("PublishBinaryMessageWithCallback")]
long PublishBinaryMessage(winrt::hstring const& messageType, IBuffer const& message, MessageTransmittedHandler const& messageTransmittedHandler);
[Windows.Foundation.Metadata.Overload("PublishBinaryMessageWithCallback")]
public long PublishBinaryMessage(string messageType, IBuffer message, MessageTransmittedHandler messageTransmittedHandler);
function publishBinaryMessage(messageType, message, messageTransmittedHandler)
Public Function PublishBinaryMessage (messageType As String, message As IBuffer, messageTransmittedHandler As MessageTransmittedHandler) As Long

Parameter

messageType
String

Platform::String

winrt::hstring

Der Typ der Nachricht, die an Abonnenten übermittelt werden soll.

message
IBuffer

Die binären Nachrichtendaten, die an Abonnenten übermittelt werden sollen.

messageTransmittedHandler
MessageTransmittedHandler

Der Handler, der aufgerufen werden soll, wenn die Nachricht übertragen wurde.

Gibt zurück

Int64

long long

long

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;

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

if (proximityDevice != null)
    {
        // The format of the app launch string is: "<args>\tWindows\t<AppName>".
        // The string is tab or null delimited.

        // The <args> string must have at least one character.
        string launchArgs = "user=default";

        // The format of the AppName is: PackageFamilyName!PRAID.
        string praid = "MyAppId"; // The Application Id value from your package.appxmanifest.

        string appName = Windows.ApplicationModel.Package.Current.Id.FamilyName + "!" + praid;

        string launchAppMessage = launchArgs + "\tWindows\t" + appName;

        var dataWriter = new Windows.Storage.Streams.DataWriter();
        dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE;
        dataWriter.WriteString(launchAppMessage);
        var launchAppPubId =
        proximityDevice.PublishBinaryMessage(
            "LaunchApp:WriteTag", dataWriter.DetachBuffer(), 
            proximityWriteTagLaunchAppMessageTransmitCallback);
    }
}

private void proximityWriteTagLaunchAppMessageTransmitCallback(
    Windows.Networking.Proximity.ProximityDevice sender,
    long messageId)
{
    // The LaunchApp message has been successfully written to a tag.
}
   Private proximityDevice As Windows.Networking.Proximity.ProximityDevice

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

   If proximityDevice IsNot Nothing Then
           ' The format of the app launch string is: "<args>" & vbTab & "Windows" vbTab & "<AppName>".
           ' The string is tab or null delimited.

           ' The <args> string must have at least one character.
           Dim launchArgs = "user=default"

           ' The format of the AppName is: PackageFamilyName!PRAID.
           Dim praid = "MyAppId" ' The Application Id value from your package.appxmanifest.

           Dim appName = Windows.ApplicationModel.Package.Current.Id.FamilyName & "!" & praid

           Dim launchAppMessage = launchArgs & vbTab & "Windows" & vbTab & appName

           Dim dataWriter = New Windows.Storage.Streams.DataWriter()
           dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE
           dataWriter.WriteString(launchAppMessage)
           Dim launchAppPubId =
              proximityDevice.PublishBinaryMessage(
                 "LaunchApp:WriteTag", dataWriter.DetachBuffer(),
                 AddressOf proximityWriteTagLaunchAppMessageTransmitCallback)
       End If
   End Sub

   Private Sub proximityWriteTagLaunchAppMessageTransmitCallback(
       sender As Windows.Networking.Proximity.ProximityDevice,
       messageId As Long)
       ' The LaunchApp message has been successfully written to a tag.
   End Sub

Hinweise

Sie können mehrere Nachrichten desselben Nachrichtentyps veröffentlichen, und jeder Veröffentlichung ist eine eindeutige ID zugeordnet.

Sie können die Veröffentlichung einer Nachricht beenden, indem Sie die von der PublishBinaryMessage-Methode zurückgegebene Veröffentlichungs-ID an die StopPublishingMessage-Methode übergeben.

Nachrichten werden weiterhin veröffentlicht, bis die StopPublishingMessage-Methode aufgerufen oder das ProximityDevice freigegeben wird.

Sie können veröffentlichte Nachrichten mit der SubscribeForMessage-Methode abonnieren.

Sie können die PublishMessage-Methode verwenden, um eine TEXTnachricht auf einem computer in der Nähe zu veröffentlichen. Sie können die PublishUriMessage-Methode verwenden, um einen URI (Uniform Resource Identifier) auf einem benachbarten Computer zu veröffentlichen.

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.

Nachrichtentypen

Ausführliche Informationen zu den Nachrichtentypen, die Sie mit der [PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)-Methode veröffentlichen können, finden Sie in den Hinweisen im Thema PublishBinaryMessage(String, IBuffer).

Weitere Informationen

Gilt für:

PublishBinaryMessage(String, IBuffer)

Veröffentlicht für Abonnenten des angegebenen Nachrichtentyps eine Nachricht, die Binärdaten enthält.

public:
 virtual long long PublishBinaryMessage(Platform::String ^ messageType, IBuffer ^ message) = PublishBinaryMessage;
/// [Windows.Foundation.Metadata.Overload("PublishBinaryMessage")]
long PublishBinaryMessage(winrt::hstring const& messageType, IBuffer const& message);
[Windows.Foundation.Metadata.Overload("PublishBinaryMessage")]
public long PublishBinaryMessage(string messageType, IBuffer message);
function publishBinaryMessage(messageType, message)
Public Function PublishBinaryMessage (messageType As String, message As IBuffer) As Long

Parameter

messageType
String

Platform::String

winrt::hstring

Der Typ der Nachricht, die an Abonnenten übermittelt werden soll.

message
IBuffer

Die binären Nachrichtendaten, die an Abonnenten übermittelt werden sollen.

Gibt zurück

Int64

long long

long

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;

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

if (proximityDevice != null)
    {
        // The format of the app launch string is: "<args>\tWindows\t<AppName>".
        // The string is tab or null delimited.

        // The <args> string must have at least one character.
        string launchArgs = "user=default";

        // The format of the AppName is: PackageFamilyName!PRAID.
        string praid = "MyAppId"; // The Application Id value from your package.appxmanifest.

        string appName = Windows.ApplicationModel.Package.Current.Id.FamilyName + "!" + praid;

        string launchAppMessage = launchArgs + "\tWindows\t" + appName;

        var dataWriter = new Windows.Storage.Streams.DataWriter();
        dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE;
        dataWriter.WriteString(launchAppMessage);
        var launchAppPubId =
        proximityDevice.PublishBinaryMessage(
            "LaunchApp:WriteTag", dataWriter.DetachBuffer());
    }
}
Private proximityDevice As Windows.Networking.Proximity.ProximityDevice

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

If proximityDevice IsNot Nothing Then
        ' The format of the app launch string is: "<args>" & vbTab & "Windows" vbTab & "<AppName>".
        ' The string is tab or null delimited.

        ' The <args> string must have at least one character.
        Dim launchArgs = "user=default"

        ' The format of the AppName is: PackageFamilyName!PRAID.
        Dim praid = "MyAppId" ' The Application Id value from your package.appxmanifest.

        Dim appName = Windows.ApplicationModel.Package.Current.Id.FamilyName & "!" & praid

        Dim launchAppMessage = launchArgs & vbTab & "Windows" & vbTab & appName

        Dim dataWriter = New Windows.Storage.Streams.DataWriter()
        dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE
        dataWriter.WriteString(launchAppMessage)
        Dim launchAppPubId =
           proximityDevice.PublishBinaryMessage(
              "LaunchApp:WriteTag", dataWriter.DetachBuffer())
    End If
End Sub

Hinweise

Sie können mehrere Nachrichten desselben Nachrichtentyps veröffentlichen, und jeder Veröffentlichung ist eine eindeutige ID zugeordnet.

Sie können die Veröffentlichung einer Nachricht beenden, indem Sie die Veröffentlichungs-ID (abgerufen von PublishBinaryMessage) an StopPublishingMessage übergeben.

Nachrichten werden weiterhin veröffentlicht, bis StopPublishingMessage aufgerufen wird oder das ProximityDevice freigegeben wird.

Sie können veröffentlichte Nachrichten mit der SubscribeForMessage-Methode abonnieren.

Sie können die PublishMessage-Methode verwenden, um eine TEXTnachricht auf einem computer in der Nähe zu veröffentlichen. Sie können die PublishUriMessage-Methode verwenden, um einen URI (Uniform Resource Identifier) auf einem benachbarten Computer zu veröffentlichen.

Wichtig

Die Näherungs-APIs bieten keine Authentifizierung, Verschlüsselung oder Nachrichtenintegrität. Verwenden Sie die Nähe nicht, um benutzerbezogene Informationen wie Kennwörter, Finanzdaten, SMS, E-Mails, Fotos oder Behörden-ID-Nummern auszutauschen.

Nachrichtentypen

Sie verwenden den messageType-Parameter , um einen Bezeichner anzugeben, der die veröffentlichte Nachricht eindeutig identifiziert und außerdem die Bedeutung der Nachricht und der beabsichtigten Abonnentengruppe definiert.

Nachrichtentypwerte sind Zeichenfolgen, bei denen die Groß-/Kleinschreibung beachtet wird, die aus zwei Teilen bestehen: dem Protokoll, gefolgt von einem Punkt (.), gefolgt vom Untertyp.

Der Untertyp ist eine Zeichenfolge von Zeichen, wobei jedes Zeichen alphanumerisch oder ein beliebiges gültiges URI-Zeichen sein kann, wie in RFC 3986 definiert. Hier sind diese Zeichen.

- . _ ~ : / ? # [ ] @ ! $ & ' ( ) * + , ; = %

Der Untertyp darf eine Länge von 250 Zeichen nicht überschreiten.

Im Folgenden finden Sie die unterstützten Werte für den Protokollteil des Nachrichtentyps.

"Windows"-Protokoll

Die Nachricht enthält Binärdaten.

Protokoll "WindowsUri"

Die Nachrichtendaten enthalten eine UTF-16LE-codierte Zeichenfolge, bei der es sich um einen URI (Uniform Resource Identifier) handelt.|

Windows verarbeitet Nachrichten mit dem Protokoll "WindowsUri", indem der Benutzer aufgefordert wird, den empfangenen URI in der App anzuzeigen, die als Standard für dieses bestimmte URI-Protokoll konfiguriert ist. Beispielsweise werden http:// URIs im Standardwebbrowser geöffnet. Windows öffnet einen URI in der Standard-App, auch wenn eine andere App ebenfalls "WindowsUri" abonniert ist.

Anstatt die PublishBinaryMessage-Methode mit diesem Protokoll aufzurufen, verwenden Sie die PublishUriMessage-Methode .

Wenn Sie einen URI auf einem Computer veröffentlichen, auf dem windows nicht ausgeführt wird, wird der URI automatisch basierend auf der Von Ihrem Computer unterstützten Näherungstechnologie formatiert. Wenn Ihr Computer beispielsweise NFC-Hardware für die Nähe verwendet, wird der URI als NDEF-URI-Datensatz formatiert.

Wenn Sie eine WindowsUri-Nachricht abonnieren und Ihr Windows-Computer eine Nachricht empfängt, die für die von Ihrem Computer unterstützte Näherungstechnologie formatiert ist, liest Windows die formatierte Nachricht und gibt nur den URI als Nachrichteninhalt zurück.

Protokoll "WindowsMime"

Die Nachrichtendaten haben einen bestimmten MIME-Typ. Wenn es sich bei den Nachrichtendaten beispielsweise um ein JPEG-Bild handelt, lautet der Nachrichtentyp "WindowsMime.image/jpeg".

Windows verarbeitet "WindowsMime"-Nachrichten, indem der Benutzer aufgefordert wird, den empfangenen MIME-Inhalt anzuzeigen, auch wenn eine App auch für den MIME-Inhalt abonniert ist.

Wenn Sie eine "WindowsMime"-Nachricht auf einem Computer veröffentlichen, auf dem windows nicht ausgeführt wird, wird der Nachrichteninhalt automatisch basierend auf der Von Ihrem Computer unterstützten Näherungstechnologie formatiert. Wenn Ihr Computer beispielsweise NFC-Hardware für die Nähe verwendet, wird der Nachrichteninhalt als NDEF-Mime-Eintrag formatiert.

Wenn Sie eine "WindowsMime"-Nachricht veröffentlichen, müssen Sie immer den MIME-Typ einschließen. Wenn Sie eine "WindowsMime"-Nachricht abonnieren, können Sie zum Abonnieren aller MIME-Typen "WindowsMime" verwenden, ohne den MIME-Typ anzugeben. Wenn Sie einen bestimmten MIME-Typ abonnieren und Ihr Windows-Computer eine Nachricht empfängt, die für die von Ihrem Computer unterstützte Näherungstechnologie formatiert ist, liest Windows die formatierte Nachricht und gibt nur den MIME-Inhalt als Nachrichteninhalt zurück. Wenn Sie alle MIME-Typen abonnieren, sind die ersten 256 Bytes die ASCII-MIME-Typzeichenfolge, und die verbleibenden Bytes sind der MIME-Inhalt.

Protokoll "Windows:WriteTag"

Dies ist identisch mit dem Windows-Protokoll , mit der Ausnahme, dass der Inhalt in ein statisches Tag geschrieben werden soll. Die Nachricht wird nur an ein beschreibbares statisches Tag an ein Gerät übertragen. Dieses Protokoll ist nur für Veröffentlichungen gültig. Ein Beispiel für dieses Protokoll ist "Windows:WriteTag.SampleSubtype".

Protokoll "WindowsUri:WriteTag"

Dies entspricht dem WindowsUri-Protokoll , mit der Ausnahme, dass der Inhalt in ein statisches Tag geschrieben werden soll. Die Nachricht wird nur an ein beschreibbares statisches Tag an ein Gerät übertragen. Dieses Protokoll ist nur für Veröffentlichungen gültig.

Protokoll "WindowsMime:WriteTag"

Dies entspricht dem WindowsMime-Protokoll , mit der Ausnahme, dass der Inhalt in ein statisches Tag geschrieben werden soll. Die Nachricht wird nur an ein beschreibbares statisches Tag an ein Gerät übertragen. Dieses Protokoll ist nur für Veröffentlichungen gültig. Ein Beispiel für dieses Protokoll ist "WindowsMime:WriteTag.image/jpeg".

Protokoll "LaunchApp:WriteTag"

Schreibt ein Tag, das zum Starten einer bestimmten App mit optionalen Startparametern verwendet werden kann. Wenn Sie eine LaunchApp:WriteTag-Nachricht in einem Tag veröffentlichen, entspricht das Ergebnis, wenn dieses Tag auf einen Computer getippt wird, dem Aufrufen der PeerFinder.Start-Methode und der Übergabe Ihrer Startparameter. Die Nachricht muss eine UTF-16LE-codierte Zeichenfolge sein, bei der die Werte durch Tabstoppzeichen oder NULL-Werte im folgenden Format getrennt werden.

<launch arguments>[tab]<app platform 1>[tab]<app name 1>...[tab]<app platform N>[tab]<app name N>

Die Startargumente sind optional. Die Nachricht kann sie weglassen.

<app platform 1>[tab]<app name 1>...[tab]<app platform N>[tab]<app name N>

Sie müssen mindestens eine App-Plattform und einen App-Namen angeben. Die App-Plattform für einen Windows 8 und höher ist Windows. Das Format der Näherungs-App-ID ist <der Paketfamilienname>!<App-ID>. Sie können den Paketfamiliennamen aus der Windows.ApplicationModel.Package.Current.Id.FamilyName-Eigenschaft abrufen. Sie müssen den App-ID-Wert aus dem Id-Attribut des Application-Elements im Paketmanifest für Ihre App kopieren. Ein Beispiel für diese Meldung ist "user=default\tWindows\tExample.Proximity.JS_8wekyb3d8bbwe! Proximity.App".

Sie können auch andere App-Plattformen unterstützen. Weitere Informationen finden Sie unter AlternateIdentities.

"WriteableTag"-Protokoll

Wenn beim Abonnieren dieses Nachrichtenprotokolls ein schreibbares Tag in die Nähe gebracht wird, wird eine Näherungsmeldung empfangen, die eine int32 (Little-Endian) enthält, die die maximale schreibbare Größe des Tags angibt. Dieses Protokoll ist nur für Abonnements gültig.

Protokoll "Pairing:Bluetooth"

Windows abonniert diesen Nachrichtentyp, um eine Bluetooth-Kopplung mithilfe von Näherung abzuschließen. Dieses Protokoll ist nicht für die Verwendung in Apps vorgesehen.

Protokoll "NDEF"

Bei den Nachrichteninhalten handelt es sich um ordnungsgemäß formatierte NDEF-Datensätze. Der zugrunde liegende Inhaltstyp für eine Veröffentlichung, die NDEF als Nachrichtentyp verwendet, ist in den NDEF-Datensätzen enthalten. Ein Abonnement für den NDEF-Typ abonniert alle NDEF-formatierten Nachrichten.

Protokoll "NDEF:ext"

Bei den Nachrichtendaten handelt es sich um anwendungsdefinierte NDEF-Datensätze (TNF-Feldwert von 0x04).

Dieses Protokoll startet eine ordnungsgemäß konfigurierte Anwendung, um diese Ereignisse zu behandeln, wenn keine ausgeführte Anwendung bereits diese Ereignisse abonniert hat. Um eine App festzulegen, die ein bestimmtes Protokoll mithilfe von NDEF:ext verarbeiten soll, müssen Sie dem App-Manifest ein Protokolltag hinzufügen, um den URI anzugeben, mit dem die App gestartet wird. Die entsprechende Manifestsyntax wird im folgenden Beispiel veranschaulicht.

<Extensions>
  <Extension Category="windows.protocol">
    <Protocol Name="contoso.com+testapp" />
  </Extension>
</Extensions>

Hinweis

Das im App-Manifest verwendete URI-Format unterscheidet sich geringfügig von dem URI-Format, das für das NFC-Tag verwendet wird, da der Manifest-URI ein "+"-Zeichen anstelle eines ":"-Zeichens verwendet. Der URI für das NFC-Tag, das die App mit dem obigen Manifestbeispiel aktiviert, ist contoso.com:testapp.

Protokoll "NDEF:MIME"

Bei den Nachrichtendaten handelt es sich um eine ordnungsgemäß formatierte NDEF-MIME-Nachricht (TNF-Feldwert von 0x02). Beispiel: "NDEF:MIME.image/jpeg". Dieses Protokoll gilt nur für Abonnements. Verwenden Sie beim Veröffentlichen von NDEF-Inhalten NDEF.

Protokoll "NDEF:URI"

Die Nachrichtendaten sind eine ordnungsgemäß formatierte NDEF-Nachricht eines Typs, der durch einen URI-Namespace definiert wird (TNF-Feldwert von 0x03). Dieses Protokoll gilt nur für Abonnements. Verwenden Sie beim Veröffentlichen von NDEF-Inhalten NDEF. Dies bedeutet, dass das Datenformat durch den angegebenen URI identifiziert wird. Ein Beispiel für dieses Protokoll ist "NDEF:URI.http://contoso.com/sometype".

Protokoll "NDEF:wkt"

Die Nachrichtendaten sind eine ordnungsgemäß formatierte NDEF-Nachricht eines vom NFC-Forum definierten Typs (TNF-Feldwert von 0x01). Ein Beispiel für diesen Typ ist "NDEF:wkt. U" für den bekannten URI-Typ. Dieses Protokoll gilt nur für Abonnements. Verwenden Sie beim Veröffentlichen von NDEF-Inhalten NDEF.

Protokoll "NDEF:WriteTag"

Die Nachrichtendaten sollten in ein statisches Standardtag des NFC-Forums geschrieben werden. Die Nachrichtendaten müssen in einem ordnungsgemäßen NDEF-Format vorliegen. Dieses Protokoll ist nur für Veröffentlichungen gültig.

Protokoll "NDEF:Unbekannt"

Die Nachrichtendaten sind eine nicht typisierte NDEF-Nachricht (TNF-Feldwert von 0x05). Dieses Protokoll gilt nur für Abonnements. Verwenden Sie beim Veröffentlichen von NDEF-Inhalten NDEF.

Weitere Informationen

Gilt für: