Я работаю над мобильной игрой, и мне нужно, чтобы пользователи вошли в свою учетную запись 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();
}
}
}