对手getIconImageUri()返回null

时间:2013-11-27 15:04:13

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

在我的游戏中,我正在尝试获取对手的个人资料图片,但是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());
    }

2 个答案:

答案 0 :(得分:4)

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

如果您邀请玩家,他们正在接受您的邀请,那么可能会出现问题。否则,如果圈子匹配不完整,则不会透露参与者的图标或名称,这是正常的Google+行为。

来自Android Developer Participant

  

public abstract Uri getHiResImageUri()

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

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

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

public abstract Uri getIconImageUri()

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

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

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

public abstract String getParticipantId()

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

The ID of this participant. 

public abstract Player getPlayer()

返回此参与者所代表的玩家。请注意,如果玩家的身份未知,则此值可能为null。这发生在自动匹配场景中,其中一些玩家不允许看到其他玩家的真实身份。 返回与此参与者对应的Player。

答案 1 :(得分:-1)

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