Поделиться через


ProximityDevice Класс

Определение

Позволяет публиковать сообщения на прокси-устройствах или подписываться на сообщения с прокси-устройств.

public ref class ProximityDevice sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ProximityDevice final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ProximityDevice
Public NotInheritable Class ProximityDevice
Наследование
Object Platform::Object IInspectable ProximityDevice
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)
Возможности приложения
ID_CAP_PROXIMITY [Windows Phone] proximity ID_CAP_PROXIMITY [Windows Phone]

Примеры

Windows.Networking.Proximity.ProximityDevice proximityDevice;

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

    if (proximityDevice != null) {
        proximityDevice.DeviceArrived += ProximityDeviceArrived;
        proximityDevice.DeviceDeparted += ProximityDeviceDeparted;

        WriteMessageText("Proximity device initialized.\n");
    }
    else
    {
        WriteMessageText("Failed to initialized proximity device.\n");
    }
}

private void ProximityDeviceArrived(Windows.Networking.Proximity.ProximityDevice device)
{
    WriteMessageText("Proximate device arrived. id = " + device.DeviceId + "\n");
}

private void ProximityDeviceDeparted(Windows.Networking.Proximity.ProximityDevice device)
{
    WriteMessageText("Proximate device departed. id = " + device.DeviceId + "\n");
}

// 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;
        });
}
Dim proximityDevice As Windows.Networking.Proximity.ProximityDevice

Private Sub InitializeProximityDevice()

    proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault()

    If proximityDevice IsNot Nothing Then
        AddHandler proximityDevice.DeviceArrived, AddressOf ProximityDeviceArrived
        AddHandler proximityDevice.DeviceDeparted, AddressOf ProximityDeviceDeparted

        WriteMessageText("Proximity device initialized." & vbTab)
    Else
        WriteMessageText("Failed to initialized proximity device." & vbTab)
    End If
End Sub

Private Sub ProximityDeviceArrived(device As Windows.Networking.Proximity.ProximityDevice)
    WriteMessageText("Proximate device arrived. id = " & device.DeviceId & vbTab)
End Sub

Private Sub ProximityDeviceDeparted(device As Windows.Networking.Proximity.ProximityDevice)
    WriteMessageText("Proximate device departed. id = " & device.DeviceId & vbTab)
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

Комментарии

Класс ProximityDevice позволяет приложениям взаимодействовать с запущенными приложениями на устройствах, обычно в диапазоне от 3 до 4 сантиметров.

Экземпляр ProximityDevice можно создать с помощью статического метода GetDefault или FromId .

Класс ProximityDevice использует семантику публикации и подписки и полезен для рекламы и получения небольших блоков данных. Для больших объемов данных или для постоянного взаимодействия используйте классы PeerFinder и StreamSocket . Для приложений UWP публикации и подписки активны, только если вызывающее приложение находится на переднем плане.

Важно!

API близкого взаимодействия не обеспечивают проверку подлинности, шифрование или целостность сообщений. Не используйте близкое расположение для обмена конфиденциальными сведениями пользователей, такими как пароли, финансовые данные, текстовые сообщения, электронные письма, фотографии или номера идентификаторов государственных организаций.

Свойства

BitsPerSecond

Возвращает скорость передачи близкого устройства.

DeviceId

Возвращает идентификатор DeviceInformation для близкого устройства.

MaxMessageBytes

Возвращает максимальный размер опубликованного сообщения, поддерживаемый этим устройством близкого взаимодействия.

Методы

FromId(String)

Создает экземпляр класса ProximityDevice и активирует указанный интерфейс устройства близкого взаимодействия.

GetDefault()

Создает экземпляр класса ProximityDevice и активирует поставщик близкого взаимодействия по умолчанию.

GetDeviceSelector()

Возвращает строку выбора класса, которую можно использовать для перечисления устройств близкого взаимодействия.

PublishBinaryMessage(String, IBuffer)

Публикует подписчикам указанного типа сообщения сообщение, содержащее двоичные данные.

PublishBinaryMessage(String, IBuffer, MessageTransmittedHandler)

Публикует сообщение, содержащее двоичные данные для подписчиков указанного типа сообщения. Указанный обработчик вызывается при передаче сообщения.

PublishMessage(String, String)

Публикует сообщение подписчикам указанного типа сообщения.

PublishMessage(String, String, MessageTransmittedHandler)

Публикует сообщение подписчикам указанного типа сообщения. Указанный обработчик вызывается при передаче сообщения.

PublishUriMessage(Uri)

Публикует универсальный код ресурса (URI) на прокси-устройстве.

PublishUriMessage(Uri, MessageTransmittedHandler)

Публикует универсальный код ресурса (URI) на прокси-устройстве. Указанный обработчик вызывается при передаче сообщения.

StopPublishingMessage(Int64)

Прекращает публикацию сообщения.

StopSubscribingForMessage(Int64)

Отменяет подписку на сообщения.

SubscribeForMessage(String, MessageReceivedHandler)

Создает подписку для указанного типа сообщения.

События

DeviceArrived

Происходит, когда устройство входит в прокси-диапазон.

DeviceDeparted

Происходит, когда устройство покидает прокси-диапазон.

Применяется к

См. также раздел