Я прочитал несколько сообщений об этом, но я не нашел правильный путь для этого. Так вот в чем проблема:
Я использовал google signin
в моем login activity
, все работает отлично. Пользователь переходит к another activity
, затем к третьему, а затем к другому. В fourth activity
мне нужен подписанный пользователь Google (на самом деле это действие по использованию Google Play Services, достижений и т. Д.) Каков наилучший и более короткий способ получить подписанного пользователя? Нужно ли делать ВСЕ процессы входа снова?
ОБНОВЛЕНИЕ:
Как уже упоминалось, обновленный код в моей деятельности выглядит следующим образом:
@Override
protected void onStart() {
super.onStart();
if (!isSignedIn()) {
signInSilently();
}
И
private boolean isSignedIn() {
return GoogleSignIn.getLastSignedInAccount(this) != null;
}
private void signInSilently() {
Log.d(TAG, "signInSilently()");
mGoogleSignInClient.silentSignIn().addOnCompleteListener(this,
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
Log.d(TAG, "signInSilently(): success");
onConnected(task.getResult());
} else {
Log.d(TAG, "signInSilently(): failure", task.getException());
onDisconnected();
}
}
});
, поскольку я не хочу иметь новый логин (кнопки и т. Д.). Сначала я думаю, что пользователь должен быть подключен. Но даже если он отключен, signInSilently () должен снова подключить пользователя.
Моя последняя проблема в том, что я получаю исключение нулевого объекта в:
mLeaderboardsClient.submitScore(getString(R.string.leaderboard_leaderboard),
private void onConnected(GoogleSignInAccount googleSignInAccount) {
Log.d(TAG, "onConnected(): connected to Google APIs");
mAchievementsClient = Games.getAchievementsClient(this, googleSignInAccount);
mLeaderboardsClient = Games.getLeaderboardsClient(this, googleSignInAccount);
mEventsClient = Games.getEventsClient(this, googleSignInAccount);
mPlayersClient = Games.getPlayersClient(this, googleSignInAccount);
, как я могу понять из-заНЕТ пользователя GOOGLE. Что еще мне нужно сделать, чтобы мой подписанный гугл-пользователь?