当游戏界面同时存在多个对象,容易发生卡顿时,例如多人PK、回城、观战、特效较多等情况,应用可以通过该接口将游戏场景ID、卡顿Level、FPS、对象数量、effect数量、是否为挂机模式、latency数据上传给HMS SDK,系统调控资源适配APP场景,使用户体验更加流畅。
● FPS至多每隔秒上传一次(也可以在FPS低于某个帧率时才发送,例如30帧游戏,低于25帧发送,60帧游戏,低于45帧发送)。
● 本接口只支持特定的华为手机(目前支持EMUI8.2及以上版本),并且HMS Core(APK)的版本需要大于2.6.1。
- long rst = HMSAgent.Game.updateGameInfo(GameInfo gameInfo);
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
gameInfo | M | 包含游戏场景详细信息的对象。 |
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
sceneId | M | int | 游戏的场景编号,0~50为保留值,50以上开发者可以根据实际场景自己定义。当前已定义的游戏场景取值如下: ● 0:默认场景。 ● 1:游戏开始启动。 ● 3:游戏启动结束。 |
level | M | int | 场景资源级别,取值范围如下: ● 1:低负载,卡顿风险低。评级标准:同屏人数0到29,技能特效使用频率低。 ● 2:中负载,卡顿风险中。评级标准:同屏人数30到59,技能特效使用频率正常。 ● 3:高负载,卡顿风险高。评级标准:同屏人数 大于等于60,技能特效使用频繁。 |
fps | O | Float | 帧数。 |
objectCount | O | int | 游戏对象数量。 |
effect | O | int | 特效数量。 |
safePowerMode | M | int | 挂机模式/主角死亡,请固定设置为0。 ● 0:false ● 1:true |
latency | M | int | 网络延迟(50ms变化给一次)。 |
loading | O | int | 场景加载情况。 ● 0:结束加载。 ● 1:开始加载。 |
server_ip | O | string | 当前链接的服务器ip。 |
t_fps | M | int | 游戏目标帧率。 |
resolution | M | int | 是否开启高清模式。 ● 0:关 ● 1:高清 如果不涉及,请设置为0。 |
qualtiy | O | int | 画质。 ● 0:高 ● 1:中 ● 2:低 |
peopleNum | O | int | 同屏人数。必须与level参数的值对应。 |
thread1 | M | String | 引擎逻辑线程池中的渲染关联线程名字,请设为空字符串。 |
thread1_id | M | String | 引擎逻辑线程池中的渲染关联线程tid。如果有多个tid,使用“|”分隔,例如2531|874|8003。 |
battle | M | String | 一局游戏的开始/结束状态。 ● 0:一局结束。 ● 1:一局开始。 |
无。
| 类型 | 返回码常量 | 返回码值 | 返回码说明 | 处理建议 |
通用返回码 | 参见通用返回码。 | |||
业务返回码 | GameStatusCodes.GAME_STATE_SUCCESS | 0 | 成功。 | |
GameStatusCodes.GAME_STATE_PARAM_ERROR | 7005 | 请求参数错误。 | 请根据logcat日志定位出错的入参。 日志Tag: HUAWEIGameApiImpl。 常见错误:Manifest文件中application节点未配置开发者的支付ID,详细配置请参考配置工程文件。 | |
GameStatusCodes.GAME_STATE_CALL_REPEAT | 7012 | 重复调用接口。 | 此接口1秒内只允许调用20次。 | |
GameStatusCodes.GAME_STATE_NOT_REGISTER | 7015 | 未注册硬件能力。 | 请确保调用registerHardwareCapability接口,并且该接口已经注册成功。 | |
- private void updateGameInfo() {
- if(!isRegister) {
- return;
- }
- showLog("updateGameInfo: begin");
- GameInfo info = new GameInfo();
- /**
- * info.setxxxx;
- */
- long rst = HMSAgent.Game.updateGameInfo(info);
- showLog("updateGameInfo: onResult=" + rst);
- }