> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tratando uma alteração de presença do dispositivo

> Exemplos de código para assinar eventos de alteração de presença do dispositivo do XBOX Live e adicionar ou remover manipuladores quando um usuário entra ou sai de um dispositivo.

Este tópico fornece um exemplo de código para tratar uma alteração de presença do dispositivo.

Este tópico aborda o seguinte:

* [Assinando uma alteração de presença do dispositivo​](#stadpc)
* [Cancelando a assinatura de uma alteração de presença do dispositivo​](#ufadpc)
* [Adicionando um manipulador de alteração de presença do dispositivo​](#aadpch)
* [Removendo um manipulador de alteração de presença do dispositivo](#radpch)

<a id="stadpc" />

## Assinando uma alteração de presença do dispositivo​

#### API C simples

```cpp theme={null}
uint64_t xuid{ 123 };

HRESULT hr = XblPresenceSubscribeToDevicePresenceChange(
    xboxLiveContext,
    xuid,
    &state.devicePresenceChangeSubscription
);
```

<a id="ufadpc" />

## Cancelando a assinatura de uma alteração de presença do dispositivo​

#### API C simples

```cpp theme={null}
HRESULT hr = XblPresenceUnsubscribeFromDevicePresenceChange(
    xboxLiveContext,
    state.devicePresenceChangeSubscription
);

state.devicePresenceChangeSubscription = nullptr;
```

<a id="aadpch" />

## Adicionando um manipulador de alteração de presença do dispositivo​

#### API C simples

```cpp theme={null}
state.devicePresenceChangedHandlerToken = XblPresenceAddDevicePresenceChangedHandler(
    xboxLiveContext,
    [](void* context, uint64_t xuid, XblPresenceDeviceType deviceType, bool isUserLoggedOnDevice)
    {
        UNREFERENCED_PARAMETER(context);
        LogToFile("Device presence change notification received:");
        LogToFile("Xuid = %u, deviceType = %u, isUserLoggedOnDevice = %u", xuid, deviceType, isUserLoggedOnDevice);
    },
    nullptr
);
```

Para obter mais informações, consulte
[XblPresenceDeviceType](/pt-BR/reference/live/xsapi-c/presence_c/enums/xblpresencedevicetype).

<a id="radpch" />

## Removendo um manipulador de alteração de presença do dispositivo

#### API C simples

```cpp theme={null}
HRESULT hr = XblPresenceRemoveDevicePresenceChangedHandler(
    xboxLiveContext,
    state.devicePresenceChangedHandlerToken
);

state.devicePresenceChangedHandlerToken = 0;
```


## Related topics

- [Código de exemplo do Rich Presence](/pt-BR/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [Instruções](/pt-BR/services/xbox-services/community/presence/how-to/index.md)
- [Tratando uma alteração de presença do título](/pt-BR/services/xbox-services/community/presence/how-to/live-handling-a-title-presence-change.md)
- [Tratando uma alteração de relacionamento social](/pt-BR/services/xbox-services/community/people-system/how-to/live-handling-a-relationship-change.md)
- [Presença](/pt-BR/services/xbox-services/community/presence/index.md)
