GameInputBatteryState

说明输入设备的电池状态。

语法

typedef struct GameInputBatteryState {  
    float chargeRate;  
    float maxChargeRate;  
    float remainingCapacity;  
    float fullChargeCapacity;  
    GameInputBatteryStatus status;  
} GameInputBatteryState  

成员

chargeRate
类型:float

设备充电率的瓦特小时值。 如果设备未提供估计值,则 chargeRate 设置为 fullChargeCapacity 的 +/- 10%;如果充电状态为“空闲”,则为零。

maxChargeRate
类型:float

可以对电池充电而不损坏电池的最大速率的瓦特小时值。

remainingCapacity
类型:float

输入设备电池中剩余电量的瓦特小时值。 如果设备未提供估计值,remainingCapacity 设置为 fullChargeCapacity 的值乘以剩余电量百分比。

fullChargeCapacity
类型:float

输入设备电池完全容量的瓦特小时值。 如果设备未提供估计值,fullChargeCapacity 设置为 1 瓦特小时。

status
类型:GameInputBatteryStatus

输入设备上电池的状态。

备注

所有浮点值都以瓦特小时为单位表示。 如果设备不具有电池或无法确定当前电池状态,则所有浮点值都为零。 否则,所有浮点值都是正数字,但 chargeRate 成员除外,它在电池放电时为负数值。

只要可以从设备时检索,就可以提供准确的瓦特小时值。 但是,并非所有设备都提供此信息,或者可能仅提供某些值。 将向任何未提供准确瓦特小时读数的浮点值分配默认值,如下所示:

  • 当充电/放电时,chargeRate 设置为 fullChargeCapacity 值的 +/- 10%;如果充电状态为“空闲”,则为零。
  • remainingCapacity 设置为 fullChargeCapacity 的值乘以剩余电量百分比
  • fullChargeCapacity 设置为 1 瓦特小时的值

许多游戏控制器具有低成本的电池充电线路,这些线路只能报告粒度充电级别,而不能报告连续充电百分比。 在此情况下,精细值映射到充电百分比,如下表所示:

精细的充电级别 映射的百分比值
完全 100%
中等 70%
40%
严重 10%

当显示电池级别时,为获得最佳的用户体验,显示电池电量“栏”的任何 UI 代码都应与此表中的值相对应。

如果从系统断开设备时调用 IGameInputDevice::GetBatteryState 方法,则所有浮点值都设置为零,而状态成员设置为 GameInputBatteryUnknown(即使连接该设备时有效值可用)。 此方法只检索本地内存中存储的数据,可以安全地从任何上下文调用。

要求

头文件:GameInput.h

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

输入 API 概述
GameInput
IGameInputDevice::GetBatteryState