다음을 통해 공유


ProximityDevice.PublishUriMessage 메서드

정의

오버로드

PublishUriMessage(Uri)

근접 디바이스에 URI(Uniform Resource Identifier)를 게시합니다.

PublishUriMessage(Uri, MessageTransmittedHandler)

근접 디바이스에 URI(Uniform Resource Identifier)를 게시합니다. 지정된 처리기는 메시지가 전송될 때 호출됩니다.

PublishUriMessage(Uri)

근접 디바이스에 URI(Uniform Resource Identifier)를 게시합니다.

public:
 virtual long long PublishUriMessage(Uri ^ message) = PublishUriMessage;
/// [Windows.Foundation.Metadata.Overload("PublishUriMessage")]
long PublishUriMessage(Uri const& message);
[Windows.Foundation.Metadata.Overload("PublishUriMessage")]
public long PublishUriMessage(System.Uri message);
function publishUriMessage(message)
Public Function PublishUriMessage (message As Uri) As Long

매개 변수

message
Uri Uri

게시할 URI입니다.

반환

Int64

long long

long

메시지의 게시 ID입니다.

특성

Windows 요구 사항

앱 기능
proximity ID_CAP_PROXIMITY [Windows Phone]

예제

private Windows.Networking.Proximity.ProximityDevice proximityDevice;
    
public MainPage()
{
    this.InitializeComponent();

    initializeProximitySample();
}

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

    if (proximityDevice == null)
        WriteMessageText("Failed to initialized proximity device.\n" +
                         "Your device may not have proximity hardware.");
}

// 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

Public Sub New()
    Me.InitializeComponent()

    initializeProximitySample()
End Sub

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

    If proximityDevice Is Nothing Then
        WriteMessageText("Failed to initialized proximity device." & vbCrLf &
                         "Your device may not have proximity hardware.")
    End If
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
long publishedUriId = -1;

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

    publishedUriId =
        proximityDevice.PublishUriMessage(new Uri("http://www.microsoft.com"));
}

private void StopPublishingUriButton_Click(object sender, RoutedEventArgs e)
{
    proximityDevice.StopPublishingMessage(publishedUriId);
}
Private publishedUriId As Long = -1

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

    publishedUriId =
        proximityDevice.PublishUriMessage(New Uri("http:'www.microsoft.com"))
End Sub

Private Sub StopPublishingUriButton_Click()
    proximityDevice.StopPublishingMessage(publishedUriId)
End Sub

설명

각 근접 디바이스에 대해 한 번에 하나의 URI만 게시할 수 있습니다.

PublishUriMessage 메서드에서 반환한 게시 ID를 StopPublishingMessage 메서드에 전달하여 URI 게시를 중지할 수 있습니다.

근접 디바이스에 대한 다른 게시 메서드와 달리 URI 게시는 URI에 대한 기본 프로토콜 처리기에 의해 처리됩니다. URI 메시지 게시에 대한 구독은 필요하지 않습니다. HTTP 프로토콜과 같은 URI 프로토콜에 대한 기본 처리기를 등록하여 URI 메시지를 받을 수 있습니다.

보내는 애플리케이션의 PackageFamilyName 값은 URI와 함께 자동으로 전송됩니다. URI의 프로토콜에 대해 등록된 처리기가 없는 경우 보내는 애플리케이션의 PackageFamilyName 값을 사용하여 수신 애플리케이션을 애플리케이션 저장소로 보냅니다.

PublishMessage 메서드를 사용하여 근접 컴퓨터에 문자 메시지를 게시할 수 있습니다. PublishBinaryMessage 메서드를 사용하여 NDEF 메시징 표준을 준수하는 텍스트가 아닌 메시지 또는 메시지를 게시할 수 있습니다.

중요

근접 API는 인증, 암호화 또는 메시지 무결성을 제공하지 않습니다. 근접성을 사용하여 암호, 재무 데이터, 문자 메시지, 이메일, 사진 또는 정부 ID 번호와 같은 사용자 중요한 정보를 교환하지 마세요.

추가 정보

적용 대상

PublishUriMessage(Uri, MessageTransmittedHandler)

근접 디바이스에 URI(Uniform Resource Identifier)를 게시합니다. 지정된 처리기는 메시지가 전송될 때 호출됩니다.

public:
 virtual long long PublishUriMessage(Uri ^ message, MessageTransmittedHandler ^ messageTransmittedHandler) = PublishUriMessage;
/// [Windows.Foundation.Metadata.Overload("PublishUriMessageWithCallback")]
long PublishUriMessage(Uri const& message, MessageTransmittedHandler const& messageTransmittedHandler);
[Windows.Foundation.Metadata.Overload("PublishUriMessageWithCallback")]
public long PublishUriMessage(System.Uri message, MessageTransmittedHandler messageTransmittedHandler);
function publishUriMessage(message, messageTransmittedHandler)
Public Function PublishUriMessage (message As Uri, messageTransmittedHandler As MessageTransmittedHandler) As Long

매개 변수

message
Uri Uri

게시할 URI입니다.

messageTransmittedHandler
MessageTransmittedHandler

메시지가 전송될 때 호출할 처리기입니다.

반환

Int64

long long

long

메시지의 게시 ID입니다.

특성

Windows 요구 사항

앱 기능
proximity ID_CAP_PROXIMITY [Windows Phone]

예제

private Windows.Networking.Proximity.ProximityDevice proximityDevice;
    
public MainPage()
{
    this.InitializeComponent();

    initializeProximitySample();
}

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

    if (proximityDevice == null)
        WriteMessageText("Failed to initialized proximity device.\n" +
                         "Your device may not have proximity hardware.");
}

// 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

Public Sub New()
    Me.InitializeComponent()

    initializeProximitySample()
End Sub

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

    If proximityDevice Is Nothing Then
        WriteMessageText("Failed to initialized proximity device." & vbCrLf &
                         "Your device may not have proximity hardware.")
    End If
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
    long publishedUriId = -1;

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

        publishedUriId =
            proximityDevice.PublishUriMessage(new Uri("http://www.microsoft.com"),
                                              UriTransmitted);
    }

private void UriTransmitted(
    Windows.Networking.Proximity.ProximityDevice sender,
        long messageId)
    {
    // The Uri has been successfully transmitted.
    }

    private void StopPublishingUriButton_Click(object sender, RoutedEventArgs e)
    {
        proximityDevice.StopPublishingMessage(publishedUriId);
    }
Private publishedUriId As Long = -1

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

    publishedUriId =
        proximityDevice.PublishUriMessage(New Uri("http:'www.microsoft.com"),
                                          AddressOf UriTransmitted)
End Sub

Private Sub UriTransmitted(
sender As Windows.Networking.Proximity.ProximityDevice,
    messageId As Long)

' The Uri has been successfully transmitted
End Sub

Private Sub StopPublishingUriButton_Click()
    proximityDevice.StopPublishingMessage(publishedUriId)
End Sub

설명

각 근접 디바이스에 대해 한 번에 하나의 URI만 게시할 수 있습니다.

PublishUriMessage 메서드에서 반환한 게시 ID를 StopPublishingMessage 메서드에 전달하여 URI 게시를 중지할 수 있습니다.

근접 디바이스에 대한 다른 게시 메서드와 달리 URI 게시는 URI에 대한 기본 프로토콜 처리기에 의해 처리됩니다. URI 메시지 게시에 대한 구독은 필요하지 않습니다. HTTP 프로토콜과 같은 URI 프로토콜에 대한 기본 처리기를 등록하여 URI 메시지를 받을 수 있습니다.

보내는 애플리케이션의 PackageFamilyName 값은 URI와 함께 자동으로 전송됩니다. URI의 프로토콜에 대해 등록된 처리기가 없는 경우 보내는 애플리케이션의 PackageFamilyName 값을 사용하여 수신 애플리케이션을 애플리케이션 저장소로 보냅니다.

PublishMessage 메서드를 사용하여 근접 컴퓨터에 문자 메시지를 게시할 수 있습니다. PublishBinaryMessage 메서드를 사용하여 NDEF 메시징 표준을 준수하는 텍스트가 아닌 메시지 또는 메시지를 게시할 수 있습니다.

중요

근접 API는 인증, 암호화 또는 메시지 무결성을 제공하지 않습니다. 근접성을 사용하여 암호, 재무 데이터, 문자 메시지, 이메일, 사진 또는 정부 ID 번호와 같은 사용자 중요한 정보를 교환하지 마세요.

추가 정보

적용 대상