从Google Play服务获取用户ID?

10

在使用Google Play Services时,有没有任何方式可以从特定用户处获得Google Play ID(数字、字符串或其他内容)?

4个回答

21

对于Google Play游戏服务,您可以使用:

String playerId = Games.Players.getCurrentPlayerId(getApiClient());

我已经弄清楚了,但还是谢谢。这对未来的其他人可能会有帮助。 - Agamemnus
10
@Pygmalion 它是唯一且恒定的吗?它能用于在线保存玩家的进度吗? - Gintas_

4

是的,我不想要求用户授予G+权限。我只需要用户ID。我不知道如何访问这个“Player”类。 - Agamemnus
那么只需要导入它,就可以了吗?我能得到用户的ID吗?我还需要做什么吗? - Agamemnus
我不这样做。它需要是持久的,以便跟踪用户的所有获取(例如:为让其他用户玩我的游戏而提供的免费级别)。用户可以清除和重置AdvertisingIdClient。 - Agamemnus
那么 Player 就是你想要的。据我所知,它与账户匹配,并且不是用户设置的,而是与 Google 账户绑定的。 - Sam12345
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Agamemnus
显示剩余3条评论

2

因此,Games.Players类已被弃用,而且没有人提供了一个总结性的解决方案来获取整个玩家对象,从而允许获取玩家ID。以下是我整理出的内容:

GoogleSignInAccount account;
PlayersClient playerClient;
Player player;
String playerId;

account = GoogleSignIn.getLastSignedInAccount(this);
if (account == null) {
    // do sign-in here
}

// Later:

playerClient = Games.getPlayersClient(this, account);
Task<Player> playerTask = playerClient.getCurrentPlayer();
player = playerTask.getResult();
if(player != null) {
    playerId = player.getPlayerId();
}

0
我相信,上面的答案已经过时了。试一下这个:
var playerID = PlayGamesPlatform.Instance.localUser.id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接