未成年帳號登錄華為游戲,啟動后不斷彈出防沉迷提示


問題描述

我們接入游戲SDK6.1.0.301版本之后,使用已實名未成年的帳號登錄游戲后,彈出SDK防沉迷提示語“尊敬的用戶,根據國家最新發布的游戲防沉迷規定,不滿18歲的未成年人僅能在周五、周六、周日和法定節假日20時至21時登錄游戲。為了您的身心健康,請合理安排時間”,點擊“確定”,還會彈出這個提示語,游戲無法退出。

我從華為應用市場上隨便下了個其他游戲,使用相同的華為帳號登錄,在彈出防沉迷提示語后,點擊“確定”,游戲是退出的。

問題分析和解決

我找到華為技術支持(游戲有自己的QQ群就在群里直接咨詢,沒有的話,可以提個工單咨詢 https://developer.huawei.com/consumer/cn/support/feedback ),在他們的引導下,復現問題,取了全量日志,搜索關鍵詞“HMSSDK”,發現一直在調用getCurrentPlayer接口,且返回錯誤碼7025:

錯誤碼7025表示用戶未實名或者已實名未成年。

華為技術向我們解釋:接入6.1.0.301版本游戲SDK,實名認證和防沉迷功能由SDK實現,在調用getCurrentPlayer接口或getGamePlayer接口后,防沉迷系統生效,如果登錄的是未成年帳號,SDK會彈出上面的提示信息。結合日志,明顯能看到是因為不停調用getCurrentPlayer接口觸發彈框一直彈出的。

為什么會不停調用getCurrentPlayer接口?我自己檢查了下,發現這個接口我是放在onStart里調用的(接入游戲登錄時,指導文檔要求:用戶在游戲過程中切出游戲並在其他應用中切換了帳號,再次回到游戲時,應用必須重新獲取playerID/openId,檢查是否與現有playerID/openId一致,如果不一致則需要引導用戶重新登錄。所以我之前就在onStart里調用getCurrentPlayer接口了),當SDK防沉迷彈窗出來后,就會觸發生命周期切換,從onpause離開,又回到onStart,然后觸發調用getCurrentPlayer接口了。華為技術建議我在onResume里調用接口,修改之后,點擊防沉迷提示框中的“確定”,游戲退出,問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM