【问题标题】:Opponent getIconImageUri() returns null对手 getIconImageUri() 返回 null
【发布时间】:2013-12-13 07:07:17
【问题描述】:

在我的游戏中,我正在尝试获取对手的头像,但 getIconImageUri() 返回 null,下面的代码仅在我的头像中显示日志 Uri。我的玩家名字也有同样的问题。我的玩家姓名已完全显示(名字和姓氏),但对手的名字类似于“player_123”。

    for (Participant p : mParticipants) {

        if (p.getIconImageUri() != null) {
            Log.d(TAG, "avatar " + p.getIconImageUri().toString());
        }
        //  ImageUtils.downloadAvatar(p.getIconImageUri().toString());
    }

【问题讨论】:

    标签: google-play-services google-play-games


    【解决方案1】:

    这听起来像是在与不在同一个分享圈的玩家建立联系。这是来自邀请游戏还是随机游戏? (自动选择)

    如果您正在邀请玩家,而他们正在接受您的游戏邀请,则可能存在问题。否则,如果圈子匹配不完整,不提供参与者的图标或名称是正常的 Google+ 行为。

    来自Android Developer Participant

    公共抽象Uri getHiResImageUri()

    返回要为此参与者显示的高分辨率图像的 URI。如果玩家的身份未知,这将为空。如果播放器根本没有图像,它也可能为 null。

    要从 Uri 中检索图像,请使用 ImageManager。 返回

    The URI of the hi-res image to display for this participant. 
    

    公共抽象Uri getIconImageUri()

    返回要为此参与者显示的图标大小图像的 URI。如果玩家身份未知,这将是玩家的自动匹配头像图标图像。如果播放器根本没有图像,它也可能为 null。

    要从 Uri 中检索图像,请使用 ImageManager。 返回

    The URI of the icon image to display for this participant. 
    

    公共抽象字符串getParticipantId()

    返回此参与者的 ID。请注意,这仅适用于当前多人房间:参与者在多个房间中不会有相同的 ID。 返回

    The ID of this participant. 
    

    public abstract Player getPlayer()

    返回此参与者代表的玩家。请注意,如果玩家的身份未知,这可能为空。这发生在不允许某些玩家看到其他人的真实身份的自动化场景中。 返回与该参与者对应的 Player。

    【讨论】:

    • 我正在使用自动化,但玩家们互相围成一圈。我正在尝试在 onRoomConnected 中下载图片,所以我需要稍后再执行此操作吗?
    • 自动匹配被视为玩家对彼此完全匿名,因此除非您发送邀请并接受邀请...查看文档,谷歌似乎正在计划,或者现在有一种方法,做一个头像进行自动匹配)在 onRoomConnected 之后,我也为我的邀请游戏处理此行为......
    【解决方案2】:

    尝试在谷歌登录时将您的姓名、图片和唯一 ID 保存在您的数据库中,并将您的 ID 发送给 onRoomConnected() 中的参与者,并借助从参与者收到的唯一 ID 从数据库中检索参与者的图像和姓名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      相关资源
      最近更新 更多