Так что я не совсем уверен, как обрабатывать вход в Google Play Services с помощью libgdx, я имею в виду, что я хотел бы попросить пользователя войти в систему при запуске приложения. Поэтому моей первой попыткой было реализовать вход в систему AndroidLauncher
onCreate
методом, подобным этому
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startSignInIntent();
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MainGame(this), config);
}
Сначала это выглядит так, как будто все работает нормально, приложение открывается в первый раз, когда оно запрашивает у меня вход в систему, а затем при следующем открытии приложения - нет. Но проблема здесь в том, что метод initialize
вызывается независимо от того, успешно ли startSignInIntent
, и я бы хотел, чтобы он вызывал initialize
только при успешном входе в систему, и, возможно, закрывал приложение в случае сбоя и позволял Пользователь попробуйте еще раз, снова открыв мое приложение. Я пытался вызвать инициализацию в OnActivityResult
, в result.isSuccess()
, но это не сработало, думаю, его нужно вызывать в onCreate
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()) {
userAccount = result.getSignInAccount();
Log.i("GoogleAccountTest", "Login Successful");
} else {
String message = result.getStatus().getStatusMessage();
if(message == null || message.isEmpty()) {
message = "Something went wrong";
}
new AlertDialog.Builder(this).setMessage(message).setNeutralButton("Ok", null).show();
}
}
}
Затем я попытался создать свой собственный экран входа в систему с помощью всего одной кнопки для входа в систему с помощью Google, я создал интерфейс, реализовал его в AndroidLauncher
и передал его по своему методу инициализации, чтобы затем вызвать .startSignInIntent()
, но проблема заключается в том, что Я все еще не ловлю погоду, звонок успешен или нет здесь.
Как мне в этом случае использовать логин Google Play Services?