1

我的 Activity 正在实现 OnInvitationReceivedListener 以及所有其他游戏服务项目。它要求我实现了 onInvitationReceived 函数(即,如果我不这样做会给出错误),这很好。问题是,我可以向我的帐户发送邀请,但它不会调用 onInvitationReceived 函数。其他听众工作,我可以通过打开邀请列表并接受它来开始游戏等等,但这个函数根本不会被调用。它也应该消耗事件,但我仍然会收到外部通知。

我错过了什么吗?是不是像下面这样简单?所有其他听众都在工作......

public class MyActivity extends BaseGameActivity
    implements View.OnClickListener, RealTimeMessageReceivedListener,
    RoomStatusUpdateListener, RoomUpdateListener, OnInvitationReceivedListener
{
    public MyActivity(){...}
    ...

    public void onInvitationReceived(Invitation arg0) 
    {
        Log.v("meh", "Invitation Received");
    }
}
4

2 回答 2

0

你在注册MyActivity回调吗?

由于您正在使用BaseGameActivity,请尝试将其放入连接后回调中:

getGamesClient().registerInvitationListener(this);

我有点惊讶这不是为您完成的,但是在查看BaseGameActivity课程时,我看不到它。

于 2013-09-17T12:04:39.710 回答
0

我有类似的问题。(每次启动服务时,我仍然没有破解邀请捆绑包上的代码不为空......即使有邀请等待......)

从这里Invitaion Listener 的上一个 StackOverflow 问题 我确实得到了大部分解决的问题。(因为我确实在我的应用程序代码中收到了新邀请的通知)但是,如果邀请已被撤销,没有什么可以告诉你......

因此,我还运行了一个 Timer 并在我的代码中执行此操作:

@Override
    public void loadInvitations(){
        mHelper.getGamesClient().loadInvitations(new OnInvitationsLoadedListener() {

            @Override
            public void onInvitationsLoaded(int statusCode, InvitationBuffer buffer) {
                dLog("invitations loaded " + buffer.getCount());
                if(mHelper.getGamesClient().STATUS_OK == statusCode  && buffer.getCount() > 0){
                    if(mGHInterface != null){
                        mGHInterface.haveInvitations(buffer.getCount());
                    } 
                } else if (mGHInterface != null){
                    mGHInterface.haveInvitations(0);
                }

            }
        });
    }

由你决定多久运行一次,但这样我发现至少我确实知道邀请是否存在,并相应地更新我的应用程序的操作。

于 2013-09-16T05:38:04.740 回答