Оппонент getIconImageUri() возвращает null

В моей игре я пытаюсь получить изображение профиля противника, но 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());
    }

person user1483208    schedule 27.11.2013    source источник


Ответы (2)


Похоже, вы общаетесь с игроками, которые не входят в тот же круг общения. Это игра по приглашению или случайная игра? (автоподбор)

Если вы приглашаете игроков, и они принимают ваше приглашение в игру, может возникнуть проблема. В противном случае это нормальное поведение Google+, когда не выдается значок или имя Участника, если сопоставление круга не завершено.

От участника-разработчика Android< /а>

общедоступный абстрактный Uri getHiResImageUri ()

Возвращает URI изображения высокого разрешения, которое будет отображаться для этого участника. Если личность игрока неизвестна, это будет нулевым. Также может быть нулевым, если у игрока просто нет изображения.

Чтобы получить изображение из Uri, используйте ImageManager. Возвращает

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

открытый абстрактный Uri getIconImageUri ()

Возвращает URI изображения размером со значок, которое будет отображаться для этого участника. Если личность игрока неизвестна, это будет изображение значка автоматического аватара для игрока. Также может быть нулевым, если у игрока просто нет изображения.

Чтобы получить изображение из Uri, используйте ImageManager. Возвращает

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

общедоступная абстрактная строка getParticipantId ()

Возвращает идентификатор этого участника. Обратите внимание, что это действительно только для использования в текущей многопользовательской комнате: участник не будет иметь одинаковый идентификатор в нескольких комнатах. Возвращает

The ID of this participant. 

публичный абстрактный проигрыватель getPlayer()

Возвращает игрока, которого представляет этот участник. Обратите внимание, что это может быть null, если личность игрока неизвестна. Это происходит в сценариях автоматизации, когда некоторым игрокам не разрешается видеть настоящую личность других. Возвращает игрока, соответствующего этому участнику.

person user2346305    schedule 28.11.2013
comment
Я использую автоматизацию, но игроки ходят друг к другу по кругу. Я пытаюсь загрузить изображение в onRoomConnected, так что мне нужно сделать это позже? - person user1483208; 28.11.2013
comment
автоматическое сопоставление обрабатывается так, как если бы игроки были полностью анонимны друг к другу, поэтому, если вы не отправите приглашение и не примете его для игры... всегда будет пустым и не будет имени для участника (хотя, глядя на документацию, кажется, что Google планирует или уже есть способ сделать аватар для автоматча) После того, как onRoomConnected, я также обрабатываю это поведение для моих игр по приглашению... - person user2346305; 29.11.2013

Попробуйте сохранить свое имя, изображение и уникальный идентификатор в своей базе данных при входе в Google и отправить свой идентификатор участникам в onRoomConnected() и получить изображение и имя участника из базы данных с помощью полученного уникального идентификатора от участника.

person Tahir Husain    schedule 19.01.2015