0

我的游戏中有一个非常奇怪的行为。首先,我有两个版本:付费和免费,链接在同一个播放服务 ID。

我开发并尝试了这些应用程序,它们运行良好,所以我将它们投入生产,在 google play 上。然后我通过反馈发现付费版本,在接受邀请时,不要处理,因为它是空的!相反,在免费版本中,它工作正常。代码是一样的。

怎么可能?

手动安装的同一个APK可以工作,然后放在google play上不起作用。

有人有这个问题吗?

这是代码:

    @Override
    public void onSignInSucceeded() {
        super.onSignInSucceeded();
        Log.i(GameProps.TAG, "invitation: "+getInvitationId());
        if (getInvitationId()!=null) {
            Intent intent=new Intent(this, OnlineGameScreen.class);
            intent.putExtra(GameProps.INVITATION_ID, getInvitationId());
            startActivity(intent);
        }
    }

getInvitationId() 返回空值。怎么可能?

再见。

4

1 回答 1

0

我解决了。之前的代码更改为:

@Override
public void onSignInSucceeded() {
    super.onSignInSucceeded();
    getGamesClient().loadInvitations(new OnInvitationsLoadedListener() {

        @Override
        public void onInvitationsLoaded(int statusCode, InvitationBuffer buffer) {
            ArrayList<Long> timestamps=new ArrayList<Long>(); 
            for (Invitation invitation:buffer) {
                timestamps.add(invitation.getCreationTimestamp());
            }
            Collections.sort(timestamps);
            if (!timestamps.isEmpty()) {
                for (Invitation invitation:buffer) {
                    Log.i(GameProps.TAG, "invitation buffer: "+invitation.getInvitationId());
                    if (invitation.getCreationTimestamp()==timestamps.get(timestamps.size()-1)) {
                        invitationId=invitation.getInvitationId();
                    }
                }
            }
            Log.i(GameProps.TAG, "invitation: "+invitationId);
            if (invitationId!=null) {
                Intent intent=new Intent(MainScreen.this, OnlineGameScreen.class);
                intent.putExtra(GameProps.INVITATION_ID, invitationId);
                startActivity(intent);
            }
        }
    });
}

所以我不得不说 GooglePlayGames 库是错误的,因为 getInvitationId() 不能正常工作。特别是因为如果 apk 是手动安装的,它就可以工作,而不是从 playstore 下载的应用程序。

我的 4 个应用程序中有 2 个发生了这种情况,所以我认为这仍然是一个谜。

于 2013-10-12T10:34:38.190 回答