我最近学习了 Google Play 游戏服务教程:https://developers.google.com/games/services/training/signin
我与游戏服务客户端有完整的实时多人连接。我的问题是使用这个时:
if(Games.Players.getCurrentPlayer(game.mGoogleClient).getDisplayName().length() >= 4) {
this.displayName = Games.Players.getCurrentPlayer(game.mGoogleClient).getDisplayName().substring(0, 4);
}
else {
this.displayName = Games.Players.getCurrentPlayer(game.mGoogleClient).getDisplayName();
}
在我的游戏屏幕类构造函数中,并将上述字符串发送到我的 paint()
方法,它仅显示我的 Google Plus(显示)名称的第一个字母(屏幕)。
编辑:这是我的 Google 客户端版本:
this.mGoogleClient = new GoogleApiClient.Builder(this, this, this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.setViewForPopups(this.findViewById(R.id.sign_in_button))
.setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
对可能解决方案的思考:
-我可以添加多个范围吗?尽管我已经有了 .addScope(Games.SCOPE_GAMES)
.addScope(Plus.SCOPE_PLUS_LOGIN)
-由于我将名称保存在游戏屏幕构造函数中,因此在构造函数结束之前是否不等待读取全名?
-我需要输入某种 SHA1 key 吗?我直接从 Google Play 商店安装游戏,这样我就可以获得实际的用户体验,因此我不会意外检查调试 .apk,但我在开发者控制台上打开了所有必需的 API
-跟进这个关键思想,来自Google客户端的数据是否可以以需要特殊授权的方式进行编码?我再次设置了 XML 权限,打开了所需的 API,并将游戏添加到了开发者控制台的 Google Play 游戏服务部分,如教程中所指定。
-连同编码思想一起,这个显示名称是否无法作为文本读取? 谢谢,任何帮助将不胜感激。
最佳答案
取消搜索队!我完全忘记了我制作的字体类仅使用大写字母,并且显然显示名称可能会出现各种混合大小写。感谢您的帮助,上面的代码几乎完美无缺。如果我没记错的话,显示名称也会同时包含名字和姓氏,中间有一个空格。
关于java - Google Play 游戏服务仅显示个人资料名称的首字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24989905/