You must have seen many applications and websites provides option to login/signup using Gmail, Facebook, twitter etc. And In my previous tutorial, I had explained Integrate Twitter Login for Your Android App in same way you can also enable Gmail login feature within your android app.
![](http://findnerd.s3.amazonaws.com/imagedata/8552/8552.png)
So, If you are willing to add gmail login within your app then please go through the steps mentioned below:-
Step 1) You need to add dependency compile line in your build.gradle file
compile 'com.google.android.gms:play-services-auth:9.8.0'
sync your project after adding this.
Step 2) Now for authentication you need to create a new project in google portal so that gmail login can be used within your application , so for this please go to the link mentioned below
https://developers.google.com/mobile/add?platform=android&cntapi=signin&cnturl=https:%2F%2Fdevelopers.google.com%2Fidentity%2Fsign-in%2Fandroid%2Fsign-in%3Fconfigured%3Dtrue&cntlbl=Continue%20Adding%20Sign-In
after creating new app on google domain the google domain will provide a google-services.json file place this file inside your app folder
Step 3) Now add the gmail login button code in your activity layout(xml) file.
<com.google.android.gms.common.SignInButton
android:layout_gravity="center"
android:layout_margin="10dp"
android:id="@+id/sign_in_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Step 4) Now add the below code in your Activity and all done
public class LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {
GoogleApiClient mGoogleApiClient;
private int RC_SIGN_IN=1001;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button);
signInButton.setSize(SignInButton.SIZE_STANDARD);
signInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
signIn();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Pass the activity result to the login button.
// loginButton.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
Toast.makeText(this, "Yee" +
" we are in", Toast.LENGTH_SHORT).show();
GoogleSignInAccount acct = result.getSignInAccount();
} else {
// Signed out, show unauthenticated UI.
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
}
0 Comment(s)