本主题提供用于处理设备状态更改的示例代码。
本主题涵盖以下内容:
订阅设备状态更改
平面 C API
uint64_t xuid{ 123 };
HRESULT hr = XblPresenceSubscribeToDevicePresenceChange(
xboxLiveContext,
xuid,
&state.devicePresenceChangeSubscription
);
取消订阅设备状态更改
平面 C API
HRESULT hr = XblPresenceUnsubscribeFromDevicePresenceChange(
xboxLiveContext,
state.devicePresenceChangeSubscription
);
state.devicePresenceChangeSubscription = nullptr;
正在添加设备状态更改处理程序
扁平 C API
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。
删除设备状态更改处理程序
扁平 C API
HRESULT hr = XblPresenceRemoveDevicePresenceChangedHandler(
xboxLiveContext,
state.devicePresenceChangedHandlerToken
);
state.devicePresenceChangedHandlerToken = 0;