哪些服务需要互联网连接

时间:2014-07-08 04:51:40

标签: android google-play-services google-play-games

我想确认一下,因为在我的设备上存在不一致...

从这些操作中,哪些操作/不需要在设备上进行互联网连接。

  1. 使用Games.Achievements.getAchievementsIntent();
  2. 查看成就
  3. 使用Games.Leaderboards.getLeaderBoardsIntent();
  4. 查看排行榜
  5. 在排行榜上提交分数
  6. 使用以下代码登录Google Play游戏......

        mHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
        // leaderboard and rate listeners dependent on signed in or not
        GameHelperListener listener = new GameHelper.GameHelperListener() {
            @Override
            public void onSignInSucceeded() {
                signingInText.setText("Signed in as: " + Games.Players.getCurrentPlayer(mHelper.getApiClient()).getDisplayName());
                leaderboardButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        startActivityForResult(
                                Games.Leaderboards
                                        .getLeaderboardIntent(
                                                mHelper.getApiClient(),
                                                getString(R.string.leaderboard_highest_score)),
                                1);
                    }
    
                });
                rateButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        launchMarket();
                    }
    
                });
                achievementsButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        startActivityForResult(Games.Achievements
                                .getAchievementsIntent(mHelper.getApiClient()),
                                2);
                    }
    
                });
            }
    
            @Override
            public void onSignInFailed() {
                signingInText.setVisibility(View.INVISIBLE);
                if (mHelper.hasSignInError()) {
                    mHelper.showFailureDialog();
                }
                leaderboardButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(appContext,
                                "You must be signed in to view the leaderboard",
                                Toast.LENGTH_SHORT).show();
                    }
    
                });
                achievementsButton.setOnClickListener(new OnClickListener() {
    
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(appContext,
                                "You must be signed in to view your achievements",
                                Toast.LENGTH_SHORT).show();
                    }
    
                });
            }
    

2 个答案:

答案 0 :(得分:4)

可以登录Play游戏服务,无需有效的互联网连接,但前提是您之前已登录(即选择了一个帐户)但尚未登录退出 - 通过mHelper.signOut()方法(在您的应用中)或在Play游戏应用中。

只要您已登录,就可以解锁查看成就 - 因此上述登录必须才能成功。

同样对于排行榜,如果您已登录,则可以提交分数,但排行榜显示不会随分数更新,直到您连接 - 您可以查看排行榜,但他们会显示&#34 ;没有联系"消息。

如果没有有效的互联网连接,同步和云保存(显然)无法正常工作。

这里的关键是除非你能登录,否则什么都不可能 - 如果失败那么其余的将失败。但是,只要您可以登录,它就可以在没有活动连接的情况下正常运行。

编辑:
另外请确保如果登录失败,您将缓存排行榜得分和未锁定成就(以某种形式的持久存储,例如文件),并在下次成功登录时发布/解锁它们。

答案 1 :(得分:1)

可以离线查看(和解锁)成就。再次上线后,成就状态将与Google Play游戏服务同步。请参阅this

查看并向排行榜提交分数需要互联网连接。

登录Google Play游戏服务也需要互联网连接。