java - OnTurnBasedMatchUpdateReceivedListener 不触发

标签 java android unity-game-engine google-play-services google-play-games

我试图让 OnTurnBasedMatchUpdateReceivedListener 触发,但它似乎不起作用。下面是我正在使用的代码示例。我得到了一个有效的 GoogleApiClient 并且已经登录(我有其他 Listener 进入代码的其他部分)。

目标是拥有一个可以处理此事件的类,方法是传递 GoogleApiClient 并在此处进行回调(我没有其他方法可以触发代码,例如 BaseGameActivity,因为代码在另一个 LIB 中,并且我正在编写额外的代码)。

关于如何调试它有什么建议吗?

package com.google.example.games.pluginsupport;

import android.util.Log;

import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.games.Games;
import com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener;
import com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch;

public class TurnBaseMatchHelper implements OnTurnBasedMatchUpdateReceivedListener {

    public interface TurnBasedMatchListener {
        void onTurnBasedMatchReceived(TurnBasedMatch match);
        void onTurnBasedMatchRemoved(String matchId);
    }

    private static TurnBaseMatchHelper turnbaseInterface = null;
    private TurnBasedMatchListener sTurnBasedMatchListener = null;

    public static void registerTurnBasedCallbacks(GoogleApiClient _googleApiClient, TurnBasedMatchListener sListener) {

        if (turnbaseInterface == null) {
            turnbaseInterface = new TurnBaseMatchHelper();
        }       
        turnbaseInterface.sTurnBasedMatchListener = sListener;

        Log.d("Unity", "registerTurnBasedCallbacks");

        Games.TurnBasedMultiplayer.registerMatchUpdateListener(_googleApiClient, turnbaseInterface);
    }

    @Override
    public void onTurnBasedMatchReceived(TurnBasedMatch match) {

        Log.d("Unity", "onTurnBasedMatchReceived");

        if (turnbaseInterface.sTurnBasedMatchListener != null) {
             sTurnBasedMatchListener.onTurnBasedMatchReceived(match);
        }
    }

    @Override
    public void onTurnBasedMatchRemoved(String matchId) {

        Log.d("Unity", "onTurnBasedMatchRemoved");

        if (turnbaseInterface.sTurnBasedMatchListener != null) {
             sTurnBasedMatchListener.onTurnBasedMatchRemoved(matchId);
        }
    }
}

最佳答案

这是我类似问题的答案。

From post: 转到设置 -> 帐户和同步 -> 打开自动同步复选框

关于java - OnTurnBasedMatchUpdateReceivedListener 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869466/

相关文章:

java - Python > 使用 JDBC 连接到 Oracle 服务名称 (jaydebeapi)

java - 我们可以合并两个 Android 源代码并使用产品风格吗?

unity-game-engine - 使用 [Header ("text")] header 是否有限制?

android - 如何在 Google Tango 中检测地板和其他表面?

ios - 我正在尝试将 firebase 合并到我的 Unity 项目中,但不断收到有关 "Firebase.Crashlytics.Editor.dll"的错误

java - 带 Canvas 的 2D 移动播放器

java - 创建实体时添加静态属性数据

java - JDBC Oracle 查询。使用 setInt() 而不是 setObject() 执行时速度慢

android - 在暗弧顶部绘制亮弧使下弧部分可见

java - 正则表达式在方法 replaceAll() 中不起作用 - Android