Статьи

Что такое GameInviteTask и почему я не могу его использовать?

Работая со второй бета- версией Windows Phone Mango SDK, я не мог не заметить, что присутствует GameInviteTask . теоретически, это должен быть класс, чтобы пригласить людей присоединиться к игровому сеансу, который в настоящее время выполняется на устройстве Windows Phone. Если у вас когда-либо был Xbox и вы играли в многопользовательскую игру (например, Call of Duty — очевидный пример, я знаю), вы, вероятно, получили приглашение от другого игрока.

(Изображение предоставлено Гамасутрой )

Класс GameInviteTask используется, как и любой другой класс на основе задач, — это неудивительно, поскольку он реализует ChooserBase <TaskEventArgs>. Все, что нужно знать пользователю, это уникальный идентификатор сеанса, который позволяет присоединиться к активному сеансу игры. Его вызов выглядит так:

GameInviteTask task = new GameInviteTask();
task.SessionId = "mysessionid";
task.Show();

В настоящее время нет способа указать получателей в коде позади, и каждый из них должен быть указан пользователем. Учитывая, что SDK все еще находится на стадии бета-тестирования, это нормально, и можно с уверенностью предположить, что, возможно, в окончательном выпуске эта незначительная проблема будет исправлена. Проблема заключается в том, что пользователь может указать контакты по их адресу электронной почты и тегу Gamertag ( что это? ), Поэтому было бы немного сложно убедиться, что используется правильная форма идентификации (например, убедитесь, что действительный тег игрока используется).

Это один из классов, который плохо себя ведет в эмуляторе. Экран фактического приглашения отображается так, как и должен.

Обратите внимание, что текущий активный игрок просто идентифицируется псевдонимом Player . Это связано с тем, что внутри эмулятора пользователь не может связать активную учетную запись Windows Live (или Xbox Live). PhoneApp1 и связанный значок представляют игру, которая вызывает приглашение и не может быть изменена.

Адрес электронной почты и тег игрока могут быть введены непосредственно в указанное поле.

Проверка Gamertag, кажется, происходит после факта — после попытки отправки. Однако, когда пользователь нажимает кнопку « Добавить контакт », он сможет увидеть, являются ли введенные теги игрока действительными — если аватар установлен, скорее всего, пользователь присутствует в базе данных Xbox Live.

Если вы хотите выбрать существующих друзей Xbox Live, вы можете нажать на соответствующую ссылку, и системное приложение вернет список друзей, связанных с учетной записью Xbox Live. Этот список привязан к основной учетной записи Windows Live, связанной с телефоном. Если выбран постоянный контакт, электронное письмо будет добавлено.

На данный момент кажется, что возможность GameInviteTask отключена даже на физических устройствах. Я могу только предположить, что для игры будет требоваться одобрение Xbox Live (как и для любой другой функции, связанной с Gamertag в SDK).

Процесс приглашения ссылается на системное приложение, которое идентифицируется следующим URI:

Приложение: // 5B04B775-356B-4AA0-AAF8-6491FFEA5634 / Приглашение

Этот URI незначительно отличается от приложения, которое использовалось для предоставления социального статуса или ссылки . Еще одним подтверждением предположения о необходимости регистрации в Xbox Live является тот факт, что существует внутренняя попытка прочитать зарегистрированный GameID .

В бета-версии кажется, что все, что сделано, — это предоставление фиктивных данных, поскольку получение текущего идентификатора игры вернет 0. В финальном выпуске это может (и будет) меняться.