如何解决Play 游戏登录在 Play 商店中发布后不起作用,但是当我在我的 android 设备上从 android studio 进行测试时它可以工作
在我发布应用后,玩游戏登录在我的应用中不起作用。我无法理解问题出在哪里 这些是为登录和成就和排行榜创建的功能。我认为问题与 OAuth 服务器有关,但我不知道该怎么做。Somone 能解释一下吗。
private fun startSignInIntent() {
val signInClient = GoogleSignIn.getClient(this,GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
val intent = signInClient.signInIntent
startActivityForResult(intent,RC_SIGN_IN)
}
override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
super.onActivityResult(requestCode,resultCode,data)
if (requestCode == RC_SIGN_IN) {
val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
if (result!!.isSuccess) {
mServerAuthCode = result.signInAccount!!.serverAuthCode
// The signed in account is stored in the result.
val signedInAccount = result.signInAccount
} else {
var message = result.status.statusMessage
if (message == null || message.isEmpty()) {
message = getString(R.string.signin_other_error)
}
AlertDialog.Builder(this).setMessage(message)
.setNeutralButton(android.R.string.ok,null).show()
}
}
}
private fun showAchievements() {
Games.getAchievementsClient(this,GoogleSignIn.getLastSignedInAccount(this)!!)
.achievementsIntent
.addOnSuccessListener { intent -> startActivityForResult(intent,RC_ACHIEVEMENT_UI) }
}
private val RC_LEADERBOARD_UI = 9004
private fun showLeaderboard() {
Games.getLeaderboardsClient(this,GoogleSignIn.getLastSignedInAccount(this)!!)
.getLeaderboardIntent(getString(R.string.leaderboard_marathon))
.addOnSuccessListener { intent -> startActivityForResult(intent,RC_LEADERBOARD_UI) }
}
private fun showLeaderboard2() {
Games.getLeaderboardsClient(this,GoogleSignIn.getLastSignedInAccount(this)!!)
.getLeaderboardIntent(getString(R.string.leaderboard_timer_mode))
.addOnSuccessListener { intent -> startActivityForResult(intent,RC_LEADERBOARD_UI) }
}
private fun signOut() {
val signInClient = GoogleSignIn.getClient(this,GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
signInClient.signOut().addOnCompleteListener(this
) {
// at this point,the user is signed out.
}
}
private fun signInSilently() {
val signInOptions = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN
val account = GoogleSignIn.getLastSignedInAccount(this)
if (GoogleSignIn.hasPermissions(account,*signInOptions.scopeArray)) {
// Already signed in.
// The signed in account is stored in the 'account' variable.
val signedInAccount = account
} else {
// Haven't been signed-in before. Try the silent sign-in first.
val signInClient = GoogleSignIn.getClient(this,signInOptions)
signInClient
.silentSignIn()
.addOnCompleteListener(
this
) { task ->
if (task.isSuccessful) {
val signedInAccount = task.result
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。