Skip to main content
使用本主题将游戏邀请添加到你的 XBOX 服务游戏中。要接收多人游戏邀请,你的游戏需要注册多人游戏协议和游戏邀请回调。你的游戏接收本地用户的邀请,然后将该用户加入到多人游戏会话中。

先决条件

要在 Windows PC 上接收游戏邀请通知,请安装 XBOX Game Bar。默认情况下,Windows 10 操作系统 1903 版或更高版本上安装了 XBOX Game Bar 应用。选择 Windows 键+G 来启动 XBOX Game Bar 应用,以验证它是否已正确安装。
如果 Windows PC 上未安装 XBOX Game Bar,你可以从 Microsoft Store 安装它。

注册多人游戏协议

注册多人游戏协议会告诉系统在用户接受多人游戏邀请时如何启动你的游戏。要注册多人游戏协议,需要将 MultiplayerProtocol 元素添加到 MicrosoftGame.config 文件中,如以下代码所示。
如果程序包中有多个可执行文件,你可以使用 Executable 属性指定哪个可执行文件处理多人游戏协议,如以下代码所示。

注册多人游戏邀请回调

XGameInviteRegisterForEventXGameInviteUnregisterForEvent API 现已被弃用。请改用 XGameActivationRegisterForEventXGameActivationUnregisterForEvent。有关迁移指南,请参阅 XGameActivation
要接收多人游戏邀请回调,必须通过使用 XGameActivationRegisterForEvent API 注册激活回调,如以下代码所示。 有关注册和注销激活回调的详细信息,请参阅 XGameActivationRegisterForEventXGameActivationUnregisterForEvent

Flat C

为了正确处理”从挂起状态接受邀请”的场景,游戏必须存储在上面示例代码中传递给 XGameActivationRegisterForEvent 回调的 OnActivation() 处理程序方法的 inviteUri。然后,游戏必须等待 RegisterAppStateChangeNotification,该通知会在游戏完全恢复时进行通知,然后游戏才能继续使用 inviteUri 中提供的详细信息操作会话。 有关 RegisterAppStateChangeNotification 的详细信息,请参阅 XBOX 游戏生命周期(NDA 主题)

从 XGameActivationCallback 解析 inviteUri

当你的游戏收到激活类型为 AcceptedGameInviteXGameActivationCallback 事件时,你可以从 XGameActivationInfo 结构中访问 inviteUri 字符串。inviteUri 采用以下格式之一。

接受游戏邀请

当用户接受游戏邀请时,游戏会收到游戏邀请回调,其 inviteUri 如以下代码所示。
URI 始终以 “ms-xbl-multiplayer//” 开头,随后是以下句柄。
  • inviteHandleAccept 表示回调是因为用户接受了游戏邀请而启动的。
  • handle 是你用于加入多人游戏会话的邀请句柄。
  • invitedXuid 是被邀请加入多人游戏会话的 XBOX 服务用户的 ID。
  • senderXuid 是发送游戏邀请的 XBOX 服务用户的 ID。
  • context 是发送方可能包含的额外(可选)上下文。

加入进行中的游戏会话

当用户尝试加入多人游戏会话时,游戏会收到邀请回调,其 inviteUri 如以下代码所示。
URI 始终以 “ms-xbl-multiplayer//” 开头,随后是以下句柄。
  • activityHandleJoin 表示回调是因为用户接受了游戏邀请而启动的。
  • handle 是你用于加入多人游戏会话的活动句柄。
  • joinerXuid 是尝试加入多人游戏会话的 XBOX 服务用户的 ID。
  • joineeXuid 是当前在多人游戏会话中的 XBOX 服务用户的 ID。

使用 handleId 加入多人游戏会话

使用多人游戏管理器

如果你使用多人游戏管理器,则可以通过使用 XblMultiplayerManagerJoinLobby API 并传入从 inviteUri 中提取的 handleId 来将用户加入到多人游戏会话中。你还可以使用 xblUserHandle 作为 invitedXuid,如以下代码所示。

Flat C

直接使用多人游戏 API

如果你使用多人游戏 API,请按以下步骤配置游戏的多人游戏会话和邀请。
  1. 通过使用 XblMultiplayerGetSessionByHandleAsync API 并将其传递到 handleId 中来获取多人游戏会话文档。
  2. 通过使用 XblMultiplayerSessionJoin API 将本地用户加入到多人游戏会话文档中。
  3. 通过使用 XblMultiplayerWriteSessionByHandleAsync API 将多人游戏会话文档写入服务以提交此更改。

参考 API 文档

另请参阅

XGameActivation API 使用多人游戏管理器处理协议激活以启动游戏
最后修改于 2026年8月25日