で署名した後、私は成功したアプリケーションでGoogleの機能付きでログインを統合しています。私の質問は、ユーザーが次回にログイン画面をスキップして、再度ログインする必要なくアプリケーションに直接アクセスできるように、この情報をどのように保存するのですか?ユーザーがアプリを閉じて、いつでも、後でそれを開いたときについてGoogleのログインを永続ログインは自動的にGoogleログイン
public class Login extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {
@Bind(R.id.googleSignIn)SignInButton googleSignIn;
GoogleSignInOptions options;
GoogleApiClient client;
private static final int GOOGLE_SIGN_IN = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
ButterKnife.bind(this);
/** CONFIGURE THE GOOGLE SIGN IN OPTIONS **/
options = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestProfile().build();
client = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, options)
.addApi(Plus.API)
.build();
/** CONFIGURE THE SIGN IN BUTTON **/
googleSignIn.setSize(SignInButton.SIZE_WIDE);
googleSignIn.setScopes(options.getScopeArray());
googleSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent signIn = Auth.GoogleSignInApi.getSignInIntent(client);
startActivityForResult(signIn, GOOGLE_SIGN_IN);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GOOGLE_SIGN_IN && resultCode == RESULT_OK) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount account = result.getSignInAccount();
String name = account.getDisplayName();
Log.e("DISPLAY NAME", name);
String email = account.getEmail();
Log.e("USER EMAIL", email);
String profile = String.valueOf(account.getPhotoUrl());
Log.e("USER PROFILE", profile);
} else {
Toast.makeText(getApplicationContext(), "Login failed!!", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
}
私が発見していないもの:
これは、これまでのコードがあります。ほとんどのチュートリアルでは、私がすでに作業している統合部分を扱うことがほとんどです。 SOに関する質問はまったく異なっています。この文脈では何もない。
私はSharedPreferences
を言うにアカウントデータを格納する必要がありますか?あるいは、SDKがその部分をすべて処理します。
皆様からお寄せいただきありがとうございます。
P.S:この質問は私のMySQLデータベースのレコードを作成する方法についての私の前の質問と異なっています。
共有設定を使用します。いくつかのブール値を保存し、後で一度あなたはログイン画面に着くuはprefでフラグをチェックすることができます。適切なアクションを実行する:) – DJphy