Android Google Play Games服务-获取跑步比赛列表

Android Google Play Games服务-获取跑步比赛列表,android,google-play-games,Android,Google Play Games,我正在用谷歌游戏服务开发一款基于TurnBased的游戏。 现在我想列出你在抽屉菜单中参与的所有游戏,这样你可以很容易地进入游戏,也可以看到你在玩什么游戏 我的问题是,我如何获得这些游戏,以及如何获得它们,以便我可以在点击后重新输入它们 希望我能把我的问题说清楚:) 谢谢大家! 您应该使用此方法: Games.TurnBasedMultiplayer.getInboxIntent(GoogleApiClient apiClient); 根据,此方法返回一个Intent,可用于启动显示邀请和匹配

我正在用谷歌游戏服务开发一款基于TurnBased的游戏。 现在我想列出你在抽屉菜单中参与的所有游戏,这样你可以很容易地进入游戏,也可以看到你在玩什么游戏

我的问题是,我如何获得这些游戏,以及如何获得它们,以便我可以在点击后重新输入它们

希望我能把我的问题说清楚:)
谢谢大家!

您应该使用此方法:

Games.TurnBasedMultiplayer.getInboxIntent(GoogleApiClient apiClient);
根据,此方法返回一个
Intent
,可用于启动显示邀请和匹配的活动

希望这有帮助。任何其他问题请随意评论,我将尝试回答。

在iOS中,它是这样的: 这一个将获取所有您被邀请并等待您回答的匹配项,然后您可以使用autocomplete将GPGTurnBasedUserMachStatusInvited更改为另一个类型

GPGTurnBasedModel *turnModel = [GPGManager sharedInstance].applicationModel.turnBased;
    NSArray *invited = [turnModel matchesForUserMatchStatus:GPGTurnBasedUserMatchStatusInvited];
还有一个函数可以获取所有匹配项,但它包括已完成的匹配项,可能您不希望这样做。

我就是这样做的:

static final int[] statusesToLoad = new int[]{
            TurnBasedMatch.MATCH_TURN_STATUS_INVITED,
            TurnBasedMatch.MATCH_TURN_STATUS_MY_TURN,
            TurnBasedMatch.MATCH_TURN_STATUS_THEIR_TURN,
            TurnBasedMatch.MATCH_TURN_STATUS_COMPLETE};

PendingResult<TurnBasedMultiplayer.LoadMatchesResult> loadMathesResult = Games.TurnBasedMultiplayer.loadMatchesByStatus(mGoogleApiClient, statusesToLoad);
loadMathesResult.setResultCallback(new loadMatchesCallback());
static final int[]statusesToLoad=new int[]{
TurnBasedMatch.MATCH\u TURN\u状态\u邀请,
TurnBasedMatch.MATCH\u TURN\u STATUS\u MY\u TURN,
TurnBasedMatch.MATCH_TURN_状态_他们的_TURN,
TurnBasedMatch.MATCH_TURN_STATUS_COMPLETE};
Pendingreult loadMathesResult=Games.TurnBasedMultiplayer.loadMatchesByStatus(MGoogleAppClient,statusesToLoad);
loadMathesResult.setResultCallback(新的loadMatchesCallback());
然后,在回调中,您可以获得您参与的所有活动游戏以及收到的所有邀请的数据缓冲区:

    private class loadMatchesCallback implements ResultCallback<TurnBasedMultiplayer.LoadMatchesResult>{

        @Override
        public void onResult(TurnBasedMultiplayer.LoadMatchesResult loadMatchesResult) {
            LoadMatchesResponse response = loadMatchesResult.getMatches();
            TurnBasedMatchBuffer myTurnMatches = response.getMyTurnMatches();
            TurnBasedMatchBuffer theirTurnMatches = response.getTheirTurnMatches();
            TurnBasedMatchBuffer completedMatches = response.getCompletedMatches();
            InvitationBuffer invitations = response.getInvitations();
            }
        }
    }
私有类loadMatchesCallback实现ResultCallback{
@凌驾
public void onResult(TurnBasedMultiplayer.LoadMatchesResult LoadMatchesResult){
LoadMatchesResponse响应=loadMatchesResult.getMatches();
TurnBasedMatchBuffer myTurnMatches=response.getMyTurnMatches();
TurnBasedMatchBuffer theirTurnMatches=response.getTheirTurnMatches();
TurnBasedMatchBuffer completedMatches=response.getCompletedMatches();
InvitationBuffer邀请=response.getInvitations();
}
}
}

您可以像使用
ArrayList
一样使用这些缓冲区,但您需要记住,google希望您在完成后
释放()。如果您不愿意,您将在日志中收到关于数据泄漏的通知。

感谢您提供详细的回答。但是在变量中哪里可以找到MatchID,以便我使用cancelmatch()来取消所有匹配。