我正在尝试使用以下代码行在Google Game Play排行榜上提交分数:
if(mGoogleApiClient.isConnected()) {
Games.Leaderboards.submitScoreImmediate(mGoogleApiClient, "xxxxxxxxxxxxxxxxx", myScore).setResultCallback(new ResultCallback<Leaderboards.SubmitScoreResult>() {
@Override
public void onResult(Leaderboards.SubmitScoreResult arg0) {
Log.e(TAG, "getStatusCode= "+arg0.getStatus().getStatusCode());
Log.e(TAG, "score submitted: "+arg0.getScoreData().toString());
}
});
}
分数没有上传,我得到以下错误ScoreSubmissionData
:
ScoreSubmissionData{PlayerId=xxxxxxxxxxxxxxxx, StatusCode=2, TimesSpan=DAILY, Result=null, TimesSpan=WEEKLY, Result=null, TimesSpan=ALL_TIME, Result=null}
StatusCode=2 means STATUS_CLIENT_RECONNECT_REQUIRED
我在onConnected()
方法中调用上面的行,所以它确保我是连接的…
尝试重新连接或应用Loop-switch序列来处理此类错误。您可能想检查这个示例,该示例展示了如何使用 com.google.android.gms.games.GamesClient
类的 STATUS_CLIENT_RECONNECT_REQUIRED
。
基于文档:
STATUS_CLIENT_RECONNECT_REQUIRED
- AppStateClient处于不一致状态,必须重新连接到服务以解决问题。
这里还列出了您可能遇到的 AppStateClient
。
我找到解决办法了。
我制作的应用程序首先构建到另一台笔记本电脑上。现在我买了一台新的笔记本电脑,我安装了Android Studio,并试图改变一些代码行。但是当我提交分数时,我的Google play帐户(API Manager)无法识别我的新笔记本电脑,因为它有不同的SHA1密钥。所以我在API管理器的凭据中添加了我的新SHA1密钥,一切都很好!!