Реализована ли интерактивная регистрация в Google Play Games? - PullRequest
0 голосов
/ 04 июня 2018

Я работаю над мобильной игрой, и мне нужно, чтобы пользователи вошли в свою учетную запись Play Games, чтобы использовать функцию списка лидеров.Я хочу, чтобы приложение запрашивало их учетную запись при запуске MainActivity.Я следовал инструкциям на сайте разработчиков Google, и это просто не работает.Экран тускнеет, как если бы он собирался запросить вход в систему, а затем показывает сообщение о том, что произошла ошибка при входе.Вот мой код до сих пор;Чего мне не хватает, чтобы заставить его работать?

public class MainActivity extends AppCompatActivity {

public int score = 0;
Button newRound;
TextView scoreText, highScore;
MediaPlayer sound = new MediaPlayer();
ColorStateList oldColors;
int hiScore = 0;
SharedPreferences preferences;
SharedPreferences.Editor editor;
ImageButton leaderboards;
int RC_SIGN_IN = 9001;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    leaderboards = findViewById(R.id.leaderboards);

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
        enableTooltips();
    }



    preferences = PreferenceManager.getDefaultSharedPreferences(this);
    editor = preferences.edit();

    newRound = findViewById(R.id.button_gen);
    scoreText = findViewById(R.id.score_tv);
    highScore = findViewById(R.id.highScore);

    oldColors =  scoreText.getTextColors();

    int savedScore = preferences.getInt("score", 0);
    int savedHiScore = preferences.getInt("hiScore", 0);

    scoreText.setText(""+savedScore);
    highScore.setText("High score: "+savedHiScore);
    score = savedScore;
    hiScore = savedHiScore;

    if(score >= 1){
        changeColor();
    }

    newRound.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            newRound();
        }
    });

    startSignInIntent();

}

@Override
protected void onStart() {
    super.onStart();

}

private void startSignInIntent() {
    GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
            GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    Intent intent = signInClient.getSignInIntent();
    startActivityForResult(intent, RC_SIGN_IN);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {
            // The signed in account is stored in the result.
            GoogleSignInAccount signedInAccount = result.getSignInAccount();
        } else {
            String message = result.getStatus().getStatusMessage();
            if (message == null || message.isEmpty()) {
                message = "Sign in error";
            }
            new AlertDialog.Builder(this).setMessage(message)
                    .setNeutralButton(android.R.string.ok, null).show();
        }
    }
}

1 Ответ

0 голосов
/ 04 июня 2018

У меня были такие же проблемы, что вы не одиноки, но по какой-то причине он работает для входа по умолчанию.

...