OnInvitationReceivedListener 无法可靠地触发(如果有的话) - Google Play 游戏服务按钮点击器

问题描述 投票:0回答:1

在尝试 Play 游戏服务的按钮点击器演示时,我没有运气让 OnInvitationReceivedListener 触发。

我已经查看了这个 Stack Overflow 答案这个 Stack Overflow 答案,并确保使用属于我内部圈子的测试帐户。 (家庭够好吗?)

测试中:

我尝试在登录其他用户之前发送邀请(我从未让 gameHelper onConnected(BundlehintConnection) 具有非空值)。

我尝试在两个帐户登录后发送邀请。(有一次收到通知并弹出顶部的视图,要求玩,就是这样)并且等待、等待、等待任何东西触发(日志中没有任何内容显示发生任何事情,并且由于发送邀请没有返回值,因此无法查看邀请的执行情况)

我可以(在发件人进入等候室后)前往“查看邀请”,邀请就在那里。我还可以使用 GamesClient loadInvitations 方法,并将invitationBuffer 返回到该侦听器中。如果我注销其中一个用户,那么当我邀请另一个测试帐户时,有时会在状态栏中收到邀请通知(时间长度从几分钟到最多半小时不等),因此我知道邀请正在被发送出去,并且很可能被某些东西拦截,正如文档所述:

public void registerInvitationListener(OnInvitationReceivedListener监听器)

注册一个侦听器来拦截传入的邀请 当前登录的用户。如果通过该方法注册了一个监听器, 传入的邀请不会生成状态栏通知,因为 只要该客户端保持连接。

请注意,一次只能有一个侦听器处于活动状态。调用这个 先前注册的另一个侦听器的方法将替换 原来的听众与新听众。参数监听器 收到新邀请时调用的侦听器。这 在主线程上调用侦听器。

我的测试显示第一部分正在工作。

老实说我不知道第二部分;正如我所说,我永远无法让听众着火!

有什么方法可以获得有关邀请的反馈吗?如果没有,是否需要采取任何其他步骤来让侦听器触发?

android listener google-play-games
1个回答
2
投票

我也遇到了同样的问题。

我不使用

BaseGameActivity
类。

根据 https://developers.google.com/games/services/android/multiplayer#during_gameplay ,注册监听器的正确方法是在

onConnected()
回调中。

我按照上述指示操作,但

onConnected()
从未被调用,所以我的
InvitationListener
从未被注册。

我的问题是我没有明确请求 Plus 客户端,而且我根本没有注册正确的回调。实现

ConnectionCallbacks
并覆盖
OnConnected()
方法还不够 -
GameHelper
不会为您注册回调。

public class MainActivity extends AndroidApplication implements
    ..., ConnectionCallbacks,
    OnInvitationReceivedListener {

...
@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  gameHelper = new GameHelper(this);
  gameHelper.setup(this, GameHelper.CLIENT_GAMES | GameHelper.CLIENT_PLUS);
  gameHelper.getPlusClient().registerConnectionCallbacks(this);
  ...
}

@Override
public void onConnected(Bundle connectionHint) {

  gameHelper.getGamesClient().registerInvitationListener(this); 
  ...
}

注册正确的两个回调后,我现在在游戏过程中收到邀请通知。

© www.soinside.com 2019 - 2024. All rights reserved.