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

# 處理裝置線上狀態變更

> 訂閱 XBOX Live 裝置線上狀態變更事件，以及在使用者登入或登出裝置時新增或移除處理常式的程式碼範例。

本主題提供處理裝置線上狀態變更的範例程式碼。

本主題涵蓋下列內容：

* [訂閱裝置線上狀態變更](#stadpc)
* [取消訂閱裝置線上狀態變更](#ufadpc)
* [新增裝置線上狀態變更處理常式](#aadpch)
* [移除裝置線上狀態變更處理常式](#radpch)

## 訂閱裝置線上狀態變更

#### 平面 C API

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

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

## 取消訂閱裝置線上狀態變更

#### 平面 C API

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

state.devicePresenceChangeSubscription = nullptr;
```

## 新增裝置線上狀態變更處理常式

#### 平面 C API

```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
);
```

如需詳細資訊，請參閱
[XblPresenceDeviceType](/zh-TW/reference/live/xsapi-c/presence_c/enums/xblpresencedevicetype)。

## 移除裝置線上狀態變更處理常式

#### 平面 C API

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

state.devicePresenceChangedHandlerToken = 0;
```


## Related topics

- [Rich Presence 範例程式碼 (內容)](/zh-TW/services/xbox-services/community/presence/how-to/live-presence-howto-nav.md)
- [操作說明](/zh-TW/services/xbox-services/community/presence/how-to/index.md)
- [處理遊戲線上狀態變更](/zh-TW/services/xbox-services/community/presence/how-to/live-handling-a-title-presence-change.md)
- [XblPresenceDevicePresenceChangedHandler](/zh-TW/reference/live/xsapi-c/presence_c/functions/xblpresencedevicepresencechangedhandler.md)
- [XblPresenceRemoveDevicePresenceChangedHandler](/zh-TW/reference/live/xsapi-c/presence_c/functions/xblpresenceremovedevicepresencechangedhandler.md)
