问题描述

手机断网情况下,耗电严重,最后定位发现玩家手机上安装的某款联运游戏一直在调用init接口。

断网情况下,华为init接口持续调用,导致手机耗电严重_HMS Core

Init接口是华为Game Service SDK提供,华为联运游戏都需要调用,具体参考游戏启动。

问题分析

联系华为技术支持(可​​提单联系​​),技术支持看了下我们代码,发现我们代码逻辑有问题,按照​​华为官方文档​​分析,我们原来直接在下图圈出来的地方增加了:

If(isInit){ // 华为初始化失败,继续调用init
huaweiInit();
}

断网情况下,华为init接口持续调用,导致手机耗电严重_HMS Core_02

断网情况下,初始化失败,导致一直在重复调用init接口,耗电严重。

解决方案

最后我们将圈出来位置中的判断去掉,补充了7002错误码(网络异常)处理,网络错误时,会提示玩家自检网络,不会自动重复调用init接口。重新提审上架,问题解决。

备注

华为技术支持这边也反馈会优化下文档和demo,当前​​最新文档​​和demo优化如下:

断网情况下,华为init接口持续调用,导致手机耗电严重_游戏服务_03