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

# 用户与手柄的关联在何时发生?

> 用户与手柄的关联在何时发生?

当手柄成功与用户关联后,按下该手柄上的 Nexus
按钮会在指南(Guide)和主控台上显示该用户的个性化体验。用户需要感到他们理解并掌控
这些关联何时发生。任何时候用户与手柄之间的关联
发生变化,都会触发
[XUserDeviceAssociationChangedCallback](/reference/system/xuser/functions/xuserdeviceassociationchangedcallback)。

新的关联可以通过以下方式建立:

* 任何时候显示账户选择器时。
* 调用 [XUserAddAsync](/reference/system/xuser/functions/xuseraddasync)。
* 调用 [XUserFindControllerForUserWithUiAsync](/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync)。
* 当只有一个用户登录到主机时,该用户给予输入的第一个手柄
  将与其关联。
* 当用户选择使用未关联的手柄启动(或重新启动)游戏时,
  该手柄将自动与该用户关联。
* 通过 XBOX Accessories 应用,用户可以将给定的手柄与
  某位用户关联。当该手柄开启时,指定用户将
  自动登录,然后该手柄与该用户关联。
* 将电池重新插入手柄会自动重新将
  该手柄与之前的所有者关联

在以下情况下关联会丢失:

* 手柄被关闭(例如电池耗尽)
* 用户注销
* 手柄被关联到新的用户(原用户将收到
  该手柄现已丢失的通知)。

以下示例说明了在主机上手柄关联可以如何变化,
会触发哪些事件,以及游戏可能采取的操作。

| 步骤 | 描述                      | 游戏动作                                                                  | 用户 A 状态                          | 用户 B 状态                                |
| -- | ----------------------- | --------------------------------------------------------------------- | -------------------------------- | -------------------------------------- |
| 1  | 用户 A 已登录,并使用手柄 1 启动游戏。  | 游戏为 *XUserDeviceAssociationChangedCallback* 注册,并调用 *XUserAddAsync*。   | 游戏已知晓用户 A。通过回调,游戏知道手柄 1 与用户 A 关联 | 不适用                                    |
| 2  | 游戏中,用户返回到 home,而游戏仍在运行。 |                                                                       | 无变化                              | 不适用                                    |
| 3  | 用户 A 使用手柄 1 让用户 B 登录。   | *XUserDeviceAssociationChangedCallback* 触发。                           | 游戏仍然知晓用户 A,但用户 A 不再有与之关联的手柄。     | 用户 B 已登录到主机但对游戏不可见。他们与手柄 1 关联。         |
| 4  | 用户 A 回到游戏,仍使用手柄 1。      | 作为最佳实践,游戏应调用 *XUserFindControllerForUserWithUiAsync* 以确保用户 A 与手柄正确关联。 | 用户 A 与他们选择的手柄相关联。                | 如果用户 A 重新选择了手柄 1 而不是新手柄,则用户 B 不再与手柄关联。 |

## 另请参见

[XUserAddAsync](/reference/system/xuser/functions/xuseraddasync)

[XUserDeviceAssociationChangedCallback](/reference/system/xuser/functions/xuserdeviceassociationchangedcallback)

[XUserFindControllerForUserWithUiAsync](/reference/system/xuser/functions/xuserfindcontrollerforuserwithuiasync)


## Related topics

- [用户](/zh-CN/build/core-features/common/user/user-toc.md)
- [处理手柄丢失](/zh-CN/build/core-features/common/user/users-dealing-with-controller-loss.md)
- [用户与输入设备](/zh-CN/build/core-features/common/user/users-input-devices.md)
- [GDK 中的用户身份与 XUser API](/zh-CN/build/core-features/common/user/index.md)
- [XR-013 将 Microsoft 账户与发行商账户关联](/zh-CN/publishing/certification/xr/xr-013.md)
