You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何显示谷歌账号登录时游戏应用常见的谷歌Play顶部下拉登录弹窗

你当前调用的silentSignIn()为谷歌Play游戏服务的静默登录接口,本身的设计逻辑就是无任何交互界面,登录成功后也不会触发顶部弹出的登录成功横幅,属于正常现象。

解决方法

  • 调整登录逻辑
    静默登录仅适合已有登录记录的用户自动续期,如果你需要触发授权弹窗、登录成功横幅,需要在静默登录失败时调用显式登录流程,代码参考:
private val RC_SIGN_IN = 9001

fun initGoogleClientAndSignin() {
    googleSignInClient = GoogleSignIn.getClient(
        this, 
        GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build()
    )

    // 先尝试静默登录
    googleSignInClient?.silentSignIn()?.addOnCompleteListener { task ->
        if (task.isSuccessful) {
            val signInAccount = task.result!!
            achievementClient = Games.getAchievementsClient(this, signInAccount)
            leaderboardsClient = Games.getLeaderboardsClient(this, signInAccount)
            // 静默登录成功后主动触发显示Play游戏欢迎横幅
            Games.getGamesClient(this, signInAccount).apply {
                setPopupsEnabled(true)
                showPlayGamesConnectUi()
            }
        } else {
            // 静默登录失败,拉起显式登录界面
            startActivityForResult(googleSignInClient?.signInIntent, RC_SIGN_IN)
        }
    }
}

// 处理显式登录结果
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val task = GoogleSignIn.getSignedInAccountFromIntent(data)
        if (task.isSuccessful) {
            val signInAccount = task.result!!
            achievementClient = Games.getAchievementsClient(this, signInAccount)
            leaderboardsClient = Games.getLeaderboardsClient(this, signInAccount)
            // 显式登录成功后会自动弹出顶部横幅,无需额外调用
        } else {
            Log.e("Error", "signInError", task.exception)
        }
    }
}
  • 检查应用配置
    1. 确认Google Play Console中已经为你的应用开启Play Games服务,完成了应用关联、OAuth 2.0客户端ID配置
    2. 确认你本地测试用的应用签名、版本号和Play Console中上传的版本一致
    3. 测试设备已安装最新版Google Play服务、Google Play Games应用,测试账号已添加到Play Console的测试白名单中
  • 特殊场景处理
    如果已经完成显式登录、配置全部正确仍未显示弹窗,可以检查是否在设备的系统设置中关闭了Play Games应用的通知权限,该弹窗属于通知类弹窗,权限关闭后会无法显示。

内容的提问来源于stack exchange,提问作者Questions100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:57:01