> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XR-015 管理玩家通信

> 当用户的隐私设置不允许时,游戏不得允许通过 XBOX 网络进行通信。

版本 1.3,03/01/2025

当用户的隐私设置不允许时,游戏不得允许通过 XBOX 网络进行通信。

游戏通过从 XBOX 网络服务检索数据来满足此 XR。如果游戏使用自己的服务,则必须在会话开始时或有新用户加入会话时检查用户的隐私权限。对于会话之外由用户发起的场景,游戏通过在显示用户数据之前以及执行操作之前检查隐私来满足此要求。游戏可以检查以下权限:

| 权限名称 | 描述 |
| - | - |
| CommunicateUsingText | 检查用户是否可以向目标用户发送文本通信(例如文本聊天、消息等)或邀请。 |
| CommunicateUsingVoice | 检查用户是否可以使用语音与目标用户通信。 |

在游戏会话期间,提供 XBOX 网络玩家与非 XBOX 网络玩家之间通信的游戏必须提供在会话期间将任何非 XBOX 网络玩家设为静音的功能。

> \[!Note]
> 有关如何在游戏中检查和解决隐私与权限问题的详细信息,请参阅[隐私和权限概述](https://docs.xbox.com/zh-CN/services/xbox-services/fundamentals/identity/privacy/live-privacy-overview.md)。

## 详细信息

### 通信设置概述

玩家通过两个面向客户端的设置来管理其通信:

| 设置名称 | 描述 | 设置级别 |
| - | - | - |
| 其他人可以使用语音、文本或邀请进行通信 | 管理所有玩家通信 | 所有人、好友、阻止 |
| 你可以在 XBOX 之外使用语音和文本进行通信 | 管理跨网络通信 | 所有人、游戏内好友、阻止 |

所选的设置级别决定了玩家的隐私权限,包括 `CommunicateUsingText` 和 `CommunicateUsingVoice`。

> \[!Important]
> \_其他人可以使用语音、文本或邀请进行通信\_会同时影响 XBOX 网络通信和跨网络通信,实际上起到通用开关的作用。这可能会导致它覆盖玩家的跨网络通信设置的情况,如下所示:

| 其他人可以使用语音、文本或邀请进行通信 | 你可以在 XBOX 之外使用语音和文本进行通信 | 预期行为 |
| - | - | - |
| 阻止 | 阻止 | 阻止所有通信 |
| 阻止 | 游戏内好友 | 阻止所有通信 |
| 阻止 | 所有人 | 阻止所有通信 |
| 好友 | 阻止 | XBOX 好友可以通信 |
| 好友 | 游戏内好友 | XBOX 好友和跨网络好友可以通信 |
| 好友 | 所有人 | XBOX 好友和所有跨网络玩家可以通信 |
| 所有人 | 阻止 | XBOX 网络玩家可以通信 |
| 所有人 | 游戏内好友 | XBOX 网络玩家和跨网络好友可以通信 |
| 所有人 | 所有人 | XBOX 网络玩家和所有跨网络玩家可以通信 |

### 检查权限

在允许任何活动发生之前,游戏还必须检查 XBOX 网络的权限,如 [XR-045:XBOX 网络和帐户权限](https://docs.xbox.com/zh-CN/publishing/certification/xr/xr-045.md)中所述。

支持 XBOX 网络玩家与非 XBOX 网络玩家之间跨网络游戏和通信的游戏,必须在允许这些玩家之间通信之前检查通信权限。

游戏使用 `crossNetworkUsers`(作为 XUID 的替代项)来检查跨网络玩家的通信设置。根据 XBOX 隐私设置,仅当用户的 XBOX 权限设置为允许与所有跨网络玩家通信时,这些用户才会返回“allowed”结果。支持跨网络好友列表的游戏可以使用 `crossNetworkFriends` 作为 XUID 的替代项来检查跨网络好友之间的通信。根据 XBOX 隐私设置,仅当用户的 XBOX 权限设置为允许与所有跨网络玩家通信时,`crossNetworkUsers` 才会返回“allowed”结果;而当用户的 XBOX 权限设置为允许与所有跨网络玩家或仅与跨网络好友通信时,`crossNetworkFriends` 将返回“allowed”。

### 豁免

不在范围内且不被视为“玩家通信”的场景包括:

* 好友请求和战队/公会邀请
* 游戏内表情动作和玩家动画
* 提及其他玩家的自动通知和动态(例如击杀动态和自动活动动态)
* 属于核心游戏功能一部分的用户通知,前提是它们不调用或不需要文本或语音通信(例如游戏内交易)

## 实施指南和最佳做法

### 游戏管理的功能

游戏可以提供自己的游戏内由游戏管理的静音和阻止选项,这些选项的工作方式可能与 XBOX 网络选项不同,并且不需要符合 XR-015 标准。但是,提供游戏内选项并不能免除遵守 XBOX 网络静音和阻止列表以及隐私设置的必要性。游戏内选项不应覆盖或忽略 XBOX 网络隐私设置。

### 邀请指南

应使用 `CommunicateUsingText` 来管理邀请权限。

* 邀请属于跨网络通信设置的范围,应根据设置值进行阻止。
* 邀请不限于游戏会话。游戏内派对以及直接促成共享会话和玩家通信的其他类型的邀请也属于范围之内,应根据用户的隐私设置进行适当阻止。
* “其他人可以使用语音、文本或邀请进行通信”上的受限值会阻止传入邀请,但不会阻止用户发送传出邀请。

### 阻止游戏体验

为通信设置受限的用户阻止游戏模式或体验并不是首选解决方案,只要可行,就应使用限制较少的方式来遵守用户设置。

如果玩家通信是某种体验的基础,并且没有可行的方法能在保持该模式完整性的同时遵守已阻止的通信设置,则可以通过例外批准阻止该模式,但必须在游戏中向受影响的玩家清楚地传达这一点。

如果游戏的大部分内容需要玩家通信,并且对设置受限的玩家进行了阻止,则应通过 Store 中的产品详细信息页面 (PDP) 主动传达这一点。

### 其他指南

* 当两个用户在文本和语音场景中互动时,将应用两者之间最严格的设置。例如,如果玩家 A 的设置为阻止,而玩家 B 不是,则应为两者都返回拒绝值。这不适用于邀请。
* 将另一个玩家设为静音会限制他们之间的语音通信,但不会影响文本或邀请。阻止另一个玩家会限制他们之间的语音和文本通信,并阻止用户接收来自被阻止玩家的邀请。
* 由于服务限制,不建议在涉及大量玩家的场景(例如全局聊天和超大规模会话/活动)中进行用户对用户的隐私权限检查。在这些场景中,必须通过定期(例如每小时)直接检查 `XPRIVILEGE_COMMUNICATIONS` 和每个玩家的阻止列表来遵守通信设置。

## 认证测试用例

### 015-01 用户通信

**配置:**

* 创建一组配置文件,将“其他人可以使用语音、文本或邀请进行通信”分别设置为“所有人”、“好友”和“阻止”。
* 对于支持 XBOX 之外通信的游戏,创建一组配置文件,将“你可以在 XBOX 之外使用语音和文本进行通信”分别设置为“所有人”、“游戏内好友”和“阻止”。

**测试步骤**

1. 在设备 1 上,登录已按照“配置”中的特定权限集进行配置的配置文件。
2. 在设备 2 上,登录没有通信限制的配置文件。
3. 在两台设备上启动游戏,尝试在支持的每个位置使用文本和语音进行通信,并尝试发送多人游戏邀请。
4. 对“配置”步骤中的所有配置文件重复步骤 1-3。

**预期结果**

游戏必须检查 XBOX 服务中用户关于隐私和在线安全相关操作的隐私设置,并且当用户的隐私和在线安全设置不允许时,不得传输用户数据或允许通过 XBOX 进行通信。

**通过示例**

1. 当该设置为阻止时,游戏阻止用户通过 XBOX 使用语音和文本进行通信。
2. 当该设置为阻止时,游戏阻止用户在 XBOX 之外使用语音和文本进行通信。
3. 当该设置为阻止时,游戏阻止用户在 XBOX 上接收多人游戏邀请。
4. 当两个用户在文本和语音场景中互动时,将应用两者之间最严格的设置。

**失败示例**

1. 当该设置为阻止时,用户能够通过 XBOX 使用语音和文本进行通信。
2. 当该设置为阻止时,用户能够在 XBOX 之外使用语音和文本进行通信。
3. 当该设置为阻止时,游戏允许用户接收多人游戏邀请。
4. 游戏阻止通信设置受限的用户访问体验或游戏模式。
5. 当两个用户在文本和语音场景中互动时,未应用两者之间最严格的设置。

### 015-02 静音支持

**测试步骤**

1. 以用户 A 的身份,使用 XBOX 静音功能将用户 B 设为静音。
2. 让两个用户都加入 XBOX 多人游戏会话。
3. 尝试从用户 B 向用户 A 发送语音通信。
4. 确保用户 A 无法接收来自用户 B 的任何语音通信。

**预期结果**

用户 A 必须无法听到来自用户 B 的通信。

**通过示例**

1. 发起静音的用户无法听到来自被静音用户的语音通信。

**失败示例**

1. 发起静音的用户可以听到来自被静音用户的语音通信。

### 015-03 被阻止的用户

**测试步骤**

1. 以用户 A 的身份,使用 XBOX 的阻止玩家功能阻止用户 B。
2. 让两个用户都加入 XBOX 多人游戏会话。
3. 尝试从用户 B 向用户 A 发送语音和书面通信。
4. 尝试从用户 B 向用户 A 发送多人游戏邀请。
5. 确保用户 A 无法接收来自用户 B 的任何通信或多人游戏邀请。

**预期结果**

用户 A 必须无法听到或看到来自用户 B 的通信。用户 A 不得接收来自用户 B 的多人游戏邀请。

**通过示例**

1. 发起阻止的用户无法看到或听到来自被阻止用户的通信。
2. 发起阻止的用户不会收到来自被阻止用户的多人游戏邀请。

**失败示例**

1. 发起阻止的用户可以看到或听到来自被阻止用户的通信。
2. 发起阻止的用户会收到来自被阻止用户的多人游戏邀请。


## Related topics

- [XBOX 游戏的 XBOX 要求](https://docs.xbox.com/zh-CN/publishing/certification/xbox-requirements.md)
- [经测试的 XBOX 要求](https://docs.xbox.com/zh-CN/publishing/certification/console-cert-tested-requirements.md)
- [隐私和权限](https://docs.xbox.com/zh-CN/services/xbox-services/fundamentals/identity/privacy/live-privacy-permissions-nav.md)
- [XBOX 服务用户特权的客户端使用](https://docs.xbox.com/zh-CN/services/xbox-services/fundamentals/identity/privileges/concepts/live-user-privileges-client.md)
- [PlayFab Party](https://docs.xbox.com/zh-CN/build/console-features/networking/game-mesh/playfab-party-intro-networking.md)
