Bir uygulamada Google ile oturum açma özelliğini başarıyla girdim. Sorum şu: Bu bilgiyi nasıl saklarım, böylece kullanıcı bir dahaki sefere giriş ekranını atlayabilir ve tekrar Oturum açmaya gerek duymadan doğrudan uygulamaya geçebilir? Kullanıcının uygulamayı kapatır ve her zaman daha sonra onu açtığında yaklaşık tarihinde Girişi ısrarlıGoogle Giriş ile oturum açtıktan sonra otomatik giriş yapın
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));
}
}
bulamadım şey:
Bu şimdiye kadar kodudur. Çoğu öğretici çoğunlukla zaten çalıştığım entegrasyon bölümü ile ilgilenir. SO hakkında bir sürü soru da tamamen farklı. Bu bağlamda hiçbir şey yok.
Hesap verilerini SharedPreferences
? Ya da SDK bu parçayı kendi başına halleder.
Size önerebileceğiniz yardımlardan dolayı minnettarım.
Not: Bu soru MySQL veritabanımda bir kayıt oluşturma hakkındaki önceki sorumdan farklıdır. Çıkış butonuna kullanıcı tıklama, SharedPreferences
bu verileri kaldırmak ve aynı zamanda Google'dan kullanıcı çıkış yaparken
kullanımı paylaşılan tercih; ve bazı boolean depolamak ve daha sonra giriş ekranına giriş yaptıktan sonra bayrak ön kontrol edebilirsiniz; ve uygun eylemi gerçekleştirin :) – DJphy