Android Google Play 游戏登录错误 12501 是指用户取消了登录操作,可以通过以下代码示例解决该问题:
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.common.api.CommonStatusCodes;
import com.google.android.gms.games.Games;
import com.google.android.gms.games.Player;
import com.google.android.gms.games.PlayersClient;
import com.google.android.gms.games.GamesCallbackStatusCodes;
// 在您的登录方法中调用以下代码示例
private void signIn() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
// 在 onActivityResult 方法中处理登录结果
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
Task task = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
// 成功登录
GoogleSignInAccount account = task.getResult(ApiException.class);
onSignInSuccess(account);
} catch (ApiException e) {
// 处理登录错误
int statusCode = e.getStatusCode();
if (statusCode == GamesCallbackStatusCodes.RESULT_APP_MISCONFIGURED) {
// 处理应用程序配置错误
// 添加您的错误处理逻辑
} else if (statusCode == CommonStatusCodes.CANCELED) {
// 处理用户取消登录
// 添加您的错误处理逻辑
} else {
// 处理其他登录错误
// 添加您的错误处理逻辑
}
}
}
}
// 处理成功登录的方法
private void onSignInSuccess(GoogleSignInAccount account) {
// 使用 Games API 进行进一步的操作,例如获取玩家信息
PlayersClient playersClient = Games.getPlayersClient(this, account);
playersClient.getCurrentPlayer().addOnSuccessListener(new OnSuccessListener() {
@Override
public void onSuccess(Player player) {
// 获取玩家信息成功
// 添加您的处理逻辑
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// 获取玩家信息失败
// 添加您的错误处理逻辑
}
});
}
在上述代码示例中,signIn() 方法用于启动 Google Play 登录界面。在 onActivityResult() 方法中,我们可以根据不同的登录结果处理对应的错误,例如处理用户取消登录的情况。onSignInSuccess() 方法用于处理成功登录后的进一步操作,例如获取玩家信息。
您可以根据自己的需求,添加适当的错误处理逻辑来解决 Android Google Play 游戏登录错误 12501。