关于android:在登录欢迎栏弹出之前将游戏切到后台弹出欢迎栏之后再切回到游戏华为防沉迷弹窗不出现可直接进入游戏

2次阅读

共计 938 个字符,预计需要花费 3 分钟才能阅读完成。

问题形容

咱们游戏集成了华为游戏防沉迷性能,提交审核,被驳回:“您的游戏未限度向未成年提供服务的工夫”。

咱们游戏是设置主动登录的,即进入游戏被动调用一次华为登录接口,登录胜利后间接进入游戏。我本人测试防沉迷是失效的,即未成年人帐号登录胜利后,能够弹出防沉迷弹窗,此时能够拦截未成年玩家进入游戏。

在华为经营的疏导下,找到审核提供具体的复现场景:

在互动核心进行反馈,注明您的问题及需要即可。

反馈入口:登陆 AGC- 所有页面右上角小铃铛处。

审核测试步骤是,进入游戏时,在登录欢送栏弹出之前(或者防沉迷弹窗弹出之前),将游戏切到后盾,在手机界面上弹出华为登录欢送栏之后,再切回到游戏,此时界面上没有华为防沉迷弹窗,而是间接进入游戏了,像是切后盾的时候把那个防沉迷弹窗给卡掉了,以至绕过防沉迷。

问题剖析

我先依照华为官网文档查看咱们的代码是否有破绽,集成防沉迷须要留神以下几点:

在初始化接口中注册实现防沉迷回调 OnExit();
登录胜利后调用 getCurrentPlayer/getGamePlayer 接口获取玩家信息,否则防沉迷不失效。

查看代码,以上两点都符合要求。

而后代码调测发现,切后盾场景下,不弹出防沉迷弹窗,没方法走到初始化时注册好的退出游戏的逻辑,以至防沉迷无奈拦挡未成年进入游戏。

分割华为技术反对(可提单分割)帮忙解决问题。技术回复,游戏切到后盾,此时因为曾经获取不到 activity,所以无奈拉起防沉迷弹窗,不能再通过弹窗管制玩家退出游戏了。

华为要求,在调用登录接口(silentSignIn 或 signInIntent)胜利后,要调用 getCurrentPlayer/getGamePlayer 接口获取玩家信息 playerID/openID,获取胜利后,才可进入游戏。在审核测试的场景下,切换前后台操作,调用 getCurrentPlayer/getGamePlayer 接口,是拿不到 playId/openId 的,游戏要禁止玩家进入。

总结就是:管制玩家进入游戏,是要通过是否获取到 playId/openId 来判断,而不是仅根据防沉迷弹框。

问题解决

依据技术回复,咱们在 getCurrentPlayer 接口失败回调中提醒用户获取玩家信息失败,并增加禁止玩家进入游戏的逻辑,问题解决。

正文完
 0