> ## 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.

# Control de un cambio de presencia de dispositivo

> Ejemplos de código para suscribirse a los eventos de cambio de presencia de dispositivo de XBOX Live y agregar o quitar controladores cuando un usuario inicia o cierra sesión en un dispositivo.

Este tema proporciona código de ejemplo para controlar un cambio de presencia de dispositivo.

Este tema abarca lo siguiente:

* [Suscripción a un cambio de presencia de dispositivo​](#stadpc)
* [Cancelación de la suscripción a un cambio de presencia de dispositivo​](#ufadpc)
* [Adición de un controlador de cambio de presencia de dispositivo​](#aadpch)
* [Eliminación de un controlador de cambio de presencia de dispositivo](#radpch)

<a id="stadpc" />

## Suscripción a un cambio de presencia de dispositivo​

#### API de C plano

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

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

<a id="ufadpc" />

## Cancelación de la suscripción a un cambio de presencia de dispositivo​

#### API de C plano

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

state.devicePresenceChangeSubscription = nullptr;
```

<a id="aadpch" />

## Adición de un controlador de cambio de presencia de dispositivo​

#### API de C plano

```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 obtener más información, consulte
[XblPresenceDeviceType](/reference/live/xsapi-c/presence_c/enums/xblpresencedevicetype).

<a id="radpch" />

## Eliminación de un controlador de cambio de presencia de dispositivo

#### API de C plano

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

state.devicePresenceChangedHandlerToken = 0;
```


## Related topics

- [Código de ejemplo de presencia enriquecida](/es/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [Procedimientos](/es/services/xbox-services/community/presence/how-to/index.md)
- [Control de un cambio de presencia de título](/es/services/xbox-services/community/presence/how-to/live-handling-a-title-presence-change.md)
- [Cambios de dispositivo activo en Game Saves](/es/services/playfab/player-progression/game-saves/activedevicechanges.md)
- [Control de un cambio de relación social](/es/services/xbox-services/community/people-system/how-to/live-handling-a-relationship-change.md)
